Программирование Web

4 курс 1 семестр
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Программирование Web

Сообщение Артём Мамзиков »

Архив 300 руб
Содержимое архива
Содержимое архива
Содержимое архива
Задание выбирать по по списку в журнале
Каждый делает свое
1 задание 1-5 в журнале
2 задание 6-10,
3 задание 11-15
4 задание 16-20
5 задание 20-26

Сделать сайт на языке
PHP , Python - на любом языке (modx)

да, покажете потом структуру базы данных, и отчет обязательно с кодом и скриншотами
введение, заключение, список литературы тоже обязательно. вообщем отчет оформить.

1 Фото галерея
Что должно быть на странице Возможность добавить новую фотографию, отображение на 1 странице допустим 9 фото 10 уже не отображается и все последующие, постраничная навигация
Возможность удалить, изменить (название описание) добавление в базу данных.

2 Типичный форум
Что должно быть на странице Возможность Создать тему, написать сообщение, изменить удалить выводится на экран

3 Типичная гостевая книга
Должна быть система модерации (какой то пользователь что то написал, прокоментировал этого сразу не видно сперва это поступает к мордернатору он уже решает ) Следующие функции которые должны присутствовать одобрить , изменить , удалить

4 Система регистрации с уровнем доступа
3 вида (текста, доступа) Видит только зарегистрированный пользователь.
Администратор , Модератор, Пользователь

5 Типичный опросник
Зайти записать вопрос варианты ответа (показать правильные)
Последний раз редактировалось Артём Мамзиков Ср апр 03, 2019 20:41, всего редактировалось 1 раз. количество слов: 28
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Программирование Web

Сообщение Артём Мамзиков »

Готовое
2 Типичный форум
Что должно быть на странице Возможность Создать тему, написать сообщение, изменить удалить выводится на экран

вход на форум admin 123
или обычным пользователем - slonik 1

структура там проста - несколько простых таблиц и все.
В из названия каждой таблицы понятно, что в ней хранится. Связи по уникальным ключам сделаны

Ведение.

Создание сайта. Сайт (веб-сайт англ. website, от web — паутина, «веб» и site — «место») - это место во всемирной сети (интернете), которое имеет свой адрес, собственного хозяина и состоит из отдельных веб-страниц, которые мы видим как одно целое.
Глобальная сеть состоит из всех сайтов, доступных для общего пользования. Все странички каждого сайта объединяются одним корневым адресом (то, что мы набираем в адресной строке браузера), тематикой, системой и дизайном. Каждая страница веб-сайта это текстовый документ, который написан на языке программирования (HTML, PHP, CSS, XHTML, JAVA или другие). Эти текстовые файлы загружаются на ваш компьютер, обрабатываются браузером и отображаются на мониторе компьютера в виде страницы сайта. Мы рассмотрим создание сайта –форума на языке PHP.
PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) - это распространенный язык программирования общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения Web-разработок и его код может внедряться непосредственно в HTML.
PHP крайне прост для освоения, но вместе с тем способен удовлетворить запросы профессиональных программистов. Не пугайтесь длинного списка возможностей PHP. Вы можете быстро начать, и уже в течение нескольких часов сможете создавать простые PHP-скрипты.
Некоторые преимущества языка PHP :
Высокая производительность. PHP-программы работают быстрее, чем ASP.
Функциональность. Разработку PHP-программы можно отделить от собственно разработки Web-страницы, что упростит жизнь и программисту, и дизайнеру.
Цена. PHP абсолютно бесплатен.
Простота в использовании. Имеющие опыт программирования на распространенных языках найдут синтаксис PHP хорошо знакомым.
Переносимость. Один и тот же PHP-код можно использовать как в среде NT, так и на платформах UNIX.
Задание.
Создать сайт типичный форум на языке PHP .
Требования к сайту:
1 Регистрация новых пользователей
2 Возможность Создавать темы
3 Возможность писать сообщения
4 Контроль администратором: публикация текста после одобрения администратором форума, возможность редактировать удалять текст после чего одобрять и выводить на обзор всему форуму.

Создаем главную стартовую страницу индексный файл index.php
индекс
индекс
Пишем код ля нашего индексного файла
Листинг файла Index.php
<?php session_start();
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li class="active"><a href="../index.php">Главная</a></li>
<li><a href="../rules.php">Правила форума</a></li>
<li><a href="../contacts.php">Контакты</a></li>
<li><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----


require 'sys/connect.php';
//mysql_query('SET NAMES utf8');
$query = "SELECT id, name FROM site_forums";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows = mysql_num_rows($result);
echo '<div class="content">';
for ($i = 0 ; $i < $rows ; ++$i)
{
$current_row = mysql_fetch_row($result);
echo '<div class="forum">
<h2 class="forum-name"><a href="forum.php/?forum='.$current_row[0].'">'.$current_row[1].'</a></h2>';
$query = 'SELECT title, description, id FROM themes WHERE forum = '.$current_row[0].' LIMIT 0, 5';
$themes = mysql_query($query);
if (!$themes) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows_two = mysql_num_rows($themes);
for ($j = 0; $j < $rows_two ; ++$j) {
$current_theme = mysql_fetch_row($themes);
echo '<div class="theme">
<h3 class="theme-name"><a href="theme.php/?theme='.$current_theme[2].'&title='.$current_row[1].'">'.$current_theme[0].'</a></h3>
<p class="theme-description">'.$current_theme[1].'</p>
</div>';
}
echo '</div>';
};

if (isset($_SESSION['signup'])) {
if ($_SESSION['signup'] == TRUE) {//если пользователь авторизован
echo '<div class="new-msg forum">
<h2 class="forum-name">Новый форум</h2>
<div class="theme">
<form action="../add_forum.php" method="POST">
<p class="theme-desription">
<label>Наименование форума: </label><input type="text" name="forum_name">
</p>
<p class="theme-desription">
<input type="submit">
<input type="reset">
</p>
</form>
</div>
</div>';
};
};
echo '</div>';
echo '</div>';

require 'blocks/footer.php';
mysql_close($db_server);
?>



Листинг файла add_forum.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';
$title_forum = $_REQUEST['forum_name'];
if ($title_forum != "")
{
$query = "INSERT INTO site_forums (name) VALUES (\"$title_forum\")";
echo $query;
$result = mysql_query($query);
if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
else
{
$id = mysql_insert_id();
header('Location: ../forum.php/?forum='.$id);
exit();
}
}
header('Location: ../index.php');
exit();
?>

Листинг файла add_mess.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';
$text = $_REQUEST['new_mess'];
$username = $_REQUEST['user_id'];
$id_theme = $_REQUEST['theme_id'];
$title_theme = $_REQUEST['theme_title'];
if ($text != "")
{
$query = "INSERT INTO messages (message, mess_date, user, theme) VALUES (\"$text\",NOW(),\"$username\",\"$id_theme\")";
$result = mysql_query($query);
if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
else
{
header('Location: ../theme.php/?theme='.$id_theme.'&title='.$title_theme);
exit();
}
}
header('Location: ../theme.php/?theme='.$id_theme.'&title='.$title_theme);
exit();
?>

Листинг файла add_rule.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';

$title = $_REQUEST['title'];
$text = $_REQUEST['text'];

if ( ($title != "") && ($text != "") )
{
$query = "INSERT INTO articles (title, text) VALUES (\"$title\", \"$text\")";
$result = mysql_query($query);

if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
};

header('Location: ../rules.php');
exit();
?>

Листинг файла add_theme.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';
$id_forum = $_REQUEST['forum_id'];
$title = $_REQUEST['theme_name'];
$descr = $_REQUEST['theme_descr'];
if ($title != "")
{
$query = "INSERT INTO themes (forum, title, description) VALUES (\"$id_forum\", \"$title\", \"$descr\")";
$result = mysql_query($query);
if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
else
{
$id = mysql_insert_id();
header('Location: ../theme.php/?theme='.$id.'&title='.$title);
exit();
}
}
header('Location: ../index.php');
exit();
?>
Листинг файла add_user.php
<?php
$login = $_REQUEST['login'];
$email = $_REQUEST['email'];

require 'sys/connect.php';
$query = "SELECT id FROM users WHERE login = \"$login\" OR email = \"$email\"";
echo $query;
$result = mysql_query($query);
if (mysql_num_rows($result) == 0) { //если ползователя с таким логином и мылом нет, то добавляем
$pass = md5($_REQUEST['pass']);
$query = "INSERT INTO users (login, password, email) VALUES (\"$login\", \"$pass\",\"$email\")";
echo $query;
$res = mysql_query($query);
if (!$res)
die('Ошибка при выполнении запроса: ' . mysql_error());
else
{
header('Location: ../login.php');
exit();
}
} else {
header('Location: ../registration.php/?error=Такой пользователь уже есть на форуме!');
exit();
}
header('Location: ../index.php');
exit();
?>

Листинг файла admin.php
<?php
require 'sys/is_logged.php';
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li><a href="../index.php">Главная</a></li>
<li><a href="../rules.php">Правила форума</a></li>
<li><a href="../contacts.php">Контакты</a></li>
<li><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li class="active"><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----
require '/sys/connect.php';
//mysql_query('SET NAMES utf8');
$query = "SELECT id, login, admin, email FROM users";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows = mysql_num_rows($result);
echo '<div class="content">';
for ($i = 0 ; $i < $rows ; ++$i)
{
$current_row = mysql_fetch_row($result);
echo '<div class="theme"><form method="post" action="../edit_user.php">';
echo '<input type="hidden" name="id" value = "'.$current_row[0].'">';
echo '<p class="theme-description"><label for="login">Логин: </label><input id="login" type="text" name="login" value = "'.$current_row[1].'"></p>';
echo '<p class="theme-description"><label for="email">E-mail: </label><input id="email" type="text" name="email" value = "'.$current_row[3].'"></p>';
echo '<p class="theme-description"><label for="admin">Логин: </label><input id="admin" type="checkbox" name="admin" value = "1" ';
if ( $current_row[2] == TRUE ) {
echo 'checked';
}
echo ' ></p>';
echo '<p class="theme-description"><input type="submit" value="Сохранить">';
echo '<a href="../edit_user.php/?del='.$current_row[0].'" class="time">Удалить</a></p>';
echo '</form></div>';
};

echo '</div></div>';

require 'blocks/footer.php';
mysql_close($db_server);
?>
Листинг файла admin_mess.php
<?php session_start();
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li><a href="../index.php">Главная</a></li>
<li><a href="../rules.php">Правила форума</a></li>
<li><a href="../contacts.php">Контакты</a></li>
<li><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----
//получаем переменную - текущую тему
$id = $_GET['id'];

echo '<div class="content">
<div class="forum">
<h2 class="forum-name">Редактирование сообщение</h2>';

require 'sys/connect.php';
$query = "SELECT message, login, mess_date FROM messages JOIN users on messages.user = users.id WHERE messages.id = \"$id\"";
$result = mysql_query($query);

if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());

$rows = mysql_num_rows($result);

for ($i = 0 ; $i < $rows ; ++$i)
{
$current_row = mysql_fetch_row($result);
echo '<div class="theme">
<form method="post" action="../edit_mess.php">
<input type="hidden" name="id" value='.$id.'>
<h3 class="theme-name"><span class="author">'.$current_row[1].'</span><span class="time">'.$current_row[2].'</span><div class="clearfix"></div></h3>
<p class="theme-description"><textarea name="mess" id="editor">'.$current_row[0].'</textarea></p>
<script>CKEDITOR.replace( "editor" );</script>
<p class="theme-description" style="color: #F00; font-size=14px;">
<input type="submit" value="Сохранить">
<a class="time" href="../edit_mess.php/?del='.$id.'">Удалить</a></p>
</div>';
};
echo '</div></div>';
require 'blocks/footer.php';
mysql_close($db_server);
?>
Листинг файла contacts.php
<?php session_start();
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li><a href="../index.php">Главная</a></li>
<li><a href="../rules.php">Правила форума</a></li>
<li class="active"><a href="../contacts.php">Контакты</a></li>
<li><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----
require '/sys/connect.php';
//mysql_query('SET NAMES utf8');
$query = "SELECT phone, email, address FROM contacts";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows = mysql_num_rows($result);
echo '<div class="content">
<div class="forum">
<h2 class="forum-name">Контакты';

if (isset($_SESSION['admin'])) {
if ($_SESSION['admin'] == TRUE) {
echo '<span class = time><a href="../contacts.php/?edit=1">Редактировать</a></span>';
}
}

echo '</h2>';//закрываем тэг h2.forum-name

if (isset($_GET['edit'])) {//если редактируем страничку
for ($i = 0 ; $i < $rows ; ++$i)
{
$current_row = mysql_fetch_row($result);

echo '<form method="POST" action="../edit_contact.php"><div class="theme"><h3 class="theme-name">Телефон</h3>
<p class="theme-description"><input type="text" value="'.$current_row[0].'" name="phone"></p>
</div>';

echo '<div class="theme"><h3 class="theme-name">E-mail</h3>
<p class="theme-description"><input type="text" value="'.$current_row[1].'" name="email"></p>
</div>';

echo '<div class="theme"><h3 class="theme-name">Адрес</h3>
<p class="theme-description"><textarea name="address" class="edit-text" cols="30" rows="10">'.$current_row[2].'</textarea></p>
</div>';

echo '<div class="theme"><input type="submit" value="Сохранить"></div></form>';
};
} else { ////если обычный просмотр
for ($i = 0 ; $i < $rows ; ++$i)
{
$current_row = mysql_fetch_row($result);

echo '<div class="theme">
<h3 class="theme-name">Телефон</h3>
<p class="theme-description">'.$current_row[0].'</p>
</div>
<div class="theme">
<h3 class="theme-name">E-mail</h3>
<p class="theme-description"><a href="mailto:'.$current_row[1].'">'.$current_row[1].'</a></p>
</div>
<div class="theme">
<h3 class="theme-name">Адрес</h3>
<p class="theme-description">'.$current_row[2].'</p>
</div>';
};
};

echo '</div></div>';

require 'blocks/footer.php';
mysql_close($db_server);
?>

Листинг файла edit_contact.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';
$phone = $_REQUEST['phone'];
$email = $_REQUEST['email'];
$address = $_REQUEST['address'];

$query = "TRUNCATE TABLE contacts";
$result = mysql_query($query);
if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
else {
$query = "INSERT INTO contacts (phone, email, address) VALUES (\"$phone\", \"$email\", \"$address\")";
$result = mysql_query($query);
if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
else {
header('Location: ../contacts.php');
exit();
};
};

?>
Листинг файла edit_mess.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';

if (isset($_GET['del'])) {
$id = $_GET['del'];

$query = "DELETE FROM messages WHERE id = \"$id\"";
$result = mysql_query($query);

if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
} else {
$text = $_REQUEST['mess'];
$id = $_REQUEST['id'];

$query = "UPDATE messages SET message = \"$text\" WHERE id = \"$id\"";

if ( $text != "") {
$result = mysql_query($query);

if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());
} else {
header('Location: ../admin_mess.php/?id='.$id);
exit();
}
}

header('Location: ../index.php');
exit();
?>
Листинг файла edit_rule.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';

if (isset($_GET['del'])) {
$id = $_GET['del'];

$query = "DELETE FROM users WHERE id = \"$id\"";
} else {
$login = $_REQUEST['login'];
$email = $_REQUEST['email'];

if (isset($_REQUEST['admin'])) {
$admin = $_REQUEST['admin'];

} else

$admin = 0;
$id = $_REQUEST['id'];

$query = "UPDATE users SET login = \"$login\", email = \"$email\", admin = \"$admin\" WHERE id = \"$id\"";
}

$result = mysql_query($query);

if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());

header('Location: ../admin.php');
exit();
?>

Листинг файла edit_user.php
<?php
require 'sys/is_logged.php';//Проверка авторизован пользователь или нет
require 'sys/connect.php';

if (isset($_GET['del'])) {
$id = $_GET['del'];

$query = "DELETE FROM users WHERE id = \"$id\"";
} else {
$login = $_REQUEST['login'];
$email = $_REQUEST['email'];

if (isset($_REQUEST['admin'])) {
$admin = $_REQUEST['admin'];

} else

$admin = 0;
$id = $_REQUEST['id'];

$query = "UPDATE users SET login = \"$login\", email = \"$email\", admin = \"$admin\" WHERE id = \"$id\"";
}

$result = mysql_query($query);

if (!$result)
die('Ошибка при выполнении запроса: ' . mysql_error());

header('Location: ../admin.php');
exit();
?>
Листинг файла forum.php
<?php session_start();
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li><a href="../index.php">Главная</a></li>
<li><a href="../rules.php">Правила форума</a></li>
<li><a href="../contacts.php">Контакты</a></li>
<li><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----
//получаем переменную - текущий форум
$id_forum = $_GET['forum'];

require '/sys/connect.php';
$query = "SELECT name FROM site_forums WHERE id = \"$id_forum\"";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows = mysql_num_rows($result);
$forum_title = mysql_fetch_row($result)[0];

echo '<div class="content">
<div class="forum">
<h2 class="forum-name">'.$forum_title.'</h2>';


$query = "SELECT id, title, description FROM themes WHERE forum = \"$id_forum\"";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows = mysql_num_rows($result);
for ($i = 0 ; $i < $rows ; ++$i)
{
$current_row = mysql_fetch_row($result);
echo '<div class="theme">
<h3 class="theme-name"><a href="../theme.php/?theme='.$current_row[0].'&title='.$current_row[1].'">'.$current_row[1].'</a></h3>
<p class="theme-description">'.$current_row[2].'</p>
</div>';

};

echo '</div>';
if (isset($_SESSION['signup'])) {
if ($_SESSION['signup'] == TRUE) {//если пользователь авторизован
echo '<div class="new-msg forum">
<h2 class="forum-name">Новая тема</h2>
<div class="theme">
<form action="../add_theme.php" method="POST">
<p class="theme-desription">
<label>Наименование темы: </label><input type="text" name="theme_name">
</p>
<p class="theme-desription">
<label>Краткое описание: </label><br />
<textarea name="theme_descr" cols="30" rows="10" id="editor"></textarea>
<script>CKEDITOR.replace( "editor" );</script>
</p>
<p class="theme-desription">
<input type="hidden" name="forum_id" value="'.$id_forum.'">
<input type="submit">
<input type="reset">
</p>
</form>
</div>
</div>';
};
};
echo '</div>';
require 'blocks/footer.php';
mysql_close($db_server);
?>

Листинг файла login.php
<?php
require 'blocks/header.php';

echo '<div class="content">
<div class="forum">
<h2 class="forum-name">Регистрация</h2>
<div class="theme">
<form action="/reg.php" method = "post" class="registration">
<p class="theme-desription"><label for="login">Логин: </label><input name="user_login" type="text" id="login"></p>
<p class="theme-desription"><label for="pass">Пароль: </label>
<input type="password" id="pass" name="user_pass"></p>
<p class="theme-desription">
<input type="submit" value="Вход">
</p>
</form>
</div>
</div>
</div>';


require 'blocks/footer.php';
?>
Листинг файла logout.php
<?php
@ob_start();
session_start();
session_destroy();
header("Location: index.php");
?>

Листинг файла reg
<?php
require '/sys/connect.php';
$login = $_REQUEST['user_login'];
$pass = $_REQUEST['user_pass'];
$query = "SELECT password, admin, login, id FROM users WHERE login = \"$login\"";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$current_row = mysql_fetch_array($result);
if ($current_row[0] != md5($pass))
{
echo '<p align = "center">Неверный логин или пароль</p>';//Сообщение
echo '<p align = "center"><a href = "/login.php" >Авторизация</a></p>';
}
else
{
session_start();
$_SESSION['signup'] = TRUE;//начало авторизованной сессии
$_SESSION['admin'] = $current_row[1];//запоминаем права
$_SESSION['login'] = $current_row[2];//запоминаем логин
$_SESSION['user_id'] = $current_row[3];//запоминаем айди пользователя
header('Location: /index.php');
exit();
}
?>
Листинг файла registration.php
<?php session_start();
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li><a href="../index.php">Главная</a></li>
<li><a href="../rules.php">Правила форума</a></li>
<li><a href="../contacts.php">Контакты</a></li>
<li class="active"><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----

if (isset($_SESSION['signup'])) {
if ($_SESSION['signup'] == TRUE) {
echo '<div class="content">
<div class="forum">
<h2 class="forum-name">Вы уже зарегистрированы на форуме</h2>
</div>
</div>';
};
} else {

echo '<div class="content">
<div class="forum">
<h2 class="forum-name">Регистрация</h2>
<div class="theme">';
if (isset($_GET['error'])) {
echo '<p class="theme-desription" style="color: #F00">'.$_GET['error'].'<p>';
}

echo '<form action="add_user.php" class="registration" method="POST">
<p class="theme-description"><label for="login">Логин: </label>
<input onkeyup = "disableButton()" type="text" id="login" name="login"></p>
<p class="theme-description"><label for="pass">Пароль: </label>
<input onkeyup = "disableButton()" type="password" id="pass" name="pass"></p>
<p class="theme-description"><label for="pass-too">Подтвердите пароль: </label>
<input onkeyup = "disableButton()" type="password" id="pass-too"></p>
<p class="theme-description"><label for="email">E-mail: </label>
<input onkeyup = "disableButton()" type="text" id="email" name="email"></p>
<p class="theme-description">
<input type="submit" id="btn" disabled>
<input type="reset" onclick = "disableSubmit()">
</p>
</form>
</div>
</div>
</div>';
}
echo '<script src="../scripts/require.js"></script>';
require 'blocks/footer.php';
?>
Листинг файла rules.php
<?php session_start();
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li><a href="../index.php">Главная</a></li>
<li class="active"><a href="../rules.php">Правила форума</a></li>
<li><a href="../contacts.php">Контакты</a></li>
<li><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----
require '/sys/connect.php';
//mysql_query('SET NAMES utf8');
$query = "SELECT title, text, id FROM articles";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows = mysql_num_rows($result);

echo '<div class="content">';

if (isset($_GET['edit'])) {//если редактируем страничку

for ($i = 0 ; $i < $rows ; ++$i) {
$current_row = mysql_fetch_row($result);

echo '<div class="forum"><form method="POST" action="../edit_rule.php"><h2 class="forum-name">';

if ($_GET['edit'] == $current_row[2]) {
echo '<label for="forum-name">Название раздела: </label>
<input id="forum-name" type="text" value="'.$current_row[0].'" name = "title">
<input type="hidden" name="article-id" value="'.$current_row[2].'">';
} else {

echo $current_row[0];

if (isset($_SESSION['admin'])) {
if ($_SESSION['admin'] == TRUE) {
echo '<span class = time><a href="../rules.php/?edit='.$current_row[2].'">Редактировать</a></span>';
}
};
}
echo'</h2>';

echo '<div class="theme"><p class="theme-description">';

if ($_GET['edit'] == $current_row[2]) {
echo '<textarea name="text" id="forum-text" cols="30" rows="10" class="edit-text">'.$current_row[1].'</textarea>
<input type="submit" value="Сохранить"><a href="../edit_rule.php/?rule='.$current_row[2].'" class="time">Удалить</a>';
} else {
echo $current_row[1];
}

echo '</p></div></form></div>';
};

} else { //если обычный просмотр

for ($i = 0 ; $i < $rows ; ++$i) {
$current_row = mysql_fetch_row($result);
echo '<div class="forum">
<h2 class="forum-name">'.$current_row[0];

if (isset($_SESSION['admin'])) {
if ($_SESSION['admin'] == TRUE) {
echo '<span class = time><a href="../rules.php/?edit='.$current_row[2].'">Редактировать</a></span>';
}
}

echo'</h2><div class="theme"><p class="theme-description">'.$current_row[1].'</p></div></div>';
};

}

if (isset($_SESSION['signup'])) {
if ( ($_SESSION['signup'] == TRUE) && ($_SESSION['admin'] == TRUE ) ) {//если пользователь авторизован
echo '<div class="new-msg forum">
<h2 class="forum-name">Новый раздел</h2>
<div class="theme">
<form action="../add_rule.php" method="POST">
<p class="theme-desription">
<label>Наименование раздела: </label><input type="text" name="title">
</p>
<p class="theme-desription">
<label>Текст: </label><br />
<textarea name="text" cols="30" rows="10" id="editor"></textarea>
<script>CKEDITOR.replace( "editor" );</script>
</p>
<input type="submit" value="Добавить">
</form>
</div>
</div>';
};
};

echo '</div>';

require 'blocks/footer.php';
mysql_close($db_server);
?>
Листинг файла theme.php
<?php session_start();
require 'blocks/header.php';
//menu
echo '<ul class="menu">
<li><a href="../index.php">Главная</a></li>
<li><a href="../rules.php">Правила форума</a></li>
<li><a href="../contacts.php">Контакты</a></li>
<li><a href="../registration.php">Регистрация</a></li>';
if ( isset($_SESSION['admin']) ) {
if ( isset($_SESSION['admin']) == TRUE ) {
echo '<li><a href="../admin.php">Пользователи</a></li>';
}
}
echo '</ul>';
//----
//получаем переменную - текущую тему
$id_theme = $_GET['theme'];
$title_theme = $_GET['title'];

echo '<div class="content">
<div class="forum">
<h2 class="forum-name">'.$title_theme.'</h2>';

require '/sys/connect.php';
$query = "SELECT message, login, mess_date, users.id, messages.id FROM messages JOIN users on messages.user = users.id WHERE theme = \"$id_theme\" ORDER BY mess_date DESC";
$result = mysql_query($query);
if (!$result) die('Ошибка при выполнении запроса: ' . mysql_error());
$rows = mysql_num_rows($result);
for ($i = 0 ; $i < $rows ; ++$i)
{
$current_row = mysql_fetch_row($result);
echo '<div class="theme">
<h3 class="theme-name"><span class="author">'.$current_row[1].'</span><span class="time">'.$current_row[2].'</span><div class="clearfix"></div></h3>
<p class="theme-description">'.$current_row[0].'</p>';

if (isset($_SESSION['signup'])) {
if ($_SESSION['admin'] == TRUE) {
echo '<p class="theme-description" style="color: #F00; font-size=14px;"><a href="../admin_mess.php/?id='.$current_row[4].'">Редактировать</a></p>';
}
}

echo '</div>';
};
echo '</div>';

if (isset($_SESSION['signup'])) {
if ($_SESSION['signup'] == TRUE) {//если пользователь авторизован
echo '<div class="new-msg forum">
<h2 class="forum-name">Новое сообщение</h2>
<div class="theme">
<form action="../add_mess.php" method="POST">
<p class="theme-desription">
<textarea name="new_mess" id="editor" cols="30" rows="10"></textarea>
<script>CKEDITOR.replace( "editor" );</script>
</p>
<p class="theme-desription">
<input type="hidden" name="theme_id" value="'.$id_theme.'">
<input type="hidden" name="theme_title" value="'.$title_theme.'">
<input type="hidden" name="user_id" value="'.$_SESSION['user_id'].'">
<input type="submit">
<input type="reset">
</p>
</form>
</div>
</div>';
};
};
echo '</div>';
require 'blocks/footer.php';
mysql_close($db_server);
?>
количество слов: 3133
LindaFaund
Гость
Сообщения: 3
Стаж: 1 год 3 месяца
Откуда: Guatemala
Контактная информация:

Программирование Web

Сообщение LindaFaund »

Использую VPS для размещения PHP скриптов.
PHP скрипты могут делать разные программисты фрилансеры.

Мне нужно сделать так, чтобы:
- Создаю юзера в Ubuntu и папку для него через команду "useradd" и заданием для юзера "Home Directory"
- Далее создаю для этого же юзера Ubuntu, создаю FTP пользователя с FTP доступом в ту же папку его домашнюю директорию.
- Присылаю программисту для FTP: адрес сервера, логин, пароль.
Таким образом, программист получает папку на сервере, в которую может помещать и запускать PHP скрипты. При этом у программиста жестко ограничен доступ вне папки как в FTP окружении так и в Ubuntu.

Но один из системных администраторов сделал замечание по этой схеме:
Все описанное верно, но тот скрипт который программист разместит на сервере будет выполнятся с правами пользователя от которого запущен web сервер apache или nginx, а не программиста, который его туда положил.

Как я понял, если мы запускаем ОС, запускаются все остальные приложения, в т.ч. веб сервер. Все проги запускаются от root пользователя. Тогда скрипт может заходить в любую папку на VPS и просматривать / редактировать / удалять любые файлы?

Если так, то как выполнить настройки, чтобы программисты получали свою папку для размещения скрипта, вне которой бы не могли ничего сделать на VPS сервере?
количество слов: 20
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 367
Стаж: 2 года 9 месяцев
Откуда: Вологодская область
Контактная информация:

Программирование Web

Сообщение Артём Мамзиков »

LindaFaund,
LindaFaund писал(а): Вс авг 09, 2020 17:07 запускаются все остальные приложения, в т.ч. веб сервер. Все проги запускаются от root
С чего вы взяли что все запускается от рут? там куча групп и различных системных пользователей различные приложения работают под различными правами.
Скрипт который лежит в папке , можно дать на него определенные права chmod *** да запуск и выполнение у него останется тут никуда без этого, другой вопрос как будет он запускаться если из php формы прописать в коде выполнять скрипт от такого то пользователя в независимости кто его запускает или скрипты лежащие загруженные в данную папку запускаются только от данного пользователя или группы.
Тут зависит все как еще написано php.
Так же apache по дефолту работает от пользователя apache у него там свои права.
количество слов: 12
Ответить Вложения 2 Пред. темаСлед. тема

Вернуться в «Программирование Web»