Файл: Разработка сайта «Я помогаю детям» (Техническое задание и выбор средств реализации).pdf
Добавлен: 15.05.2023
Просмотров: 135
Скачиваний: 3
<a href="about.php">О нас</a>
<a href="forum.php">Форум</a>
<a href="contacts.php">Контакты</a>
<a href="admin/login.php" class="btn">Войти</a>
<a href="admin/logout.php" class="btn2">Выйти</a>
</div>
</div>
Footer.php
<div class="footer">
<p>Все права защищены © Егор Первушин / МФПУ "УНИВЕРСИТЕТ" 2019</p>
</div>
Forum.php
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Курсовая работа ВБИо-302 | Первушин Егор</title>
<link rel="stylesheet" href="css/style.css">
<link rel="shortcut icon" href="/img/favicon.ico">
</head>
<body>
<?php include "header.php";?>
<div class="content">
<div class="home">
<div class="column main">
<h2>Форум</h2>
<?php
// Соединямся с БД
include "admin/settings.php";
// Читаем и выводим информацию из БД а именно таблицы users и столбца user_login
$sql = mysqli_query($link, 'SELECT `user_name`,`user_content` FROM `forum`');
while ($result = mysqli_fetch_array($sql)) {
echo "<div class=\"post\"><h5 class=\"user-name\">{$result['user_name']}</h5><p>{$result['user_content']}</p></div>";
}
?>
<div class="make-post">
<h2>Отправить сообщение:</h2>
<?php
include "settings.php";
//УЗНАЁМ ТЕКЩЕГО ПОЛЬЗОВАТЕЛЯ!!!
$sql = mysqli_query($link, "SELECT user_login FROM users WHERE user_hash= '".$_COOKIE['hash']."' ");
while ($result = mysqli_fetch_array($sql)) {
$username = $result['user_login'];
}
?>
<?php
// Соединямся с БД
include "admin/settings.php";
// Вносим информацию из формы БД а именно таблицы about_cont и столбца content
$text = $_POST['text'];
if ($text != '') {
mysqli_query($link,"INSERT INTO forum SET user_content='$text', user_name='$username'");
header("Refresh: 0");
}
?>
<form method="POST">
<textarea name="text" id="postarea" required></textarea>
<br>
<input name="submit" type="submit" value="Отправить">
</form>
</div>
</div>
<div class="column sidebar">
<?php include "sidebar.php";?>
</div>
</div>
</div>
<?php include "footer.php";?>
</body>
</html>
Login.php
<?php
include "settings.php";
//УЗНАЁМ ТЕКЩЕГО ПОЛЬЗОВАТЕЛЯ!!!
$sql = mysqli_query($link, "SELECT user_login FROM users WHERE user_hash= '".$_COOKIE['hash']."' ");
while ($result = mysqli_fetch_array($sql)) {
$username = $result['user_login'];
}
//ЕСЛИ ПОЛЬЗОВАТЕЛЬ НЕ АДМИН КИДАЕМ НА ГЛАВНУЮ
if ($username == 'admin') {
header("Location: admin.php"); exit();
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Авторизация</title>
<link rel="stylesheet" href="../css/style.css">
</head>
<body style="text-align: center;">
<?php
// Страница авторизации
// Функция для генерации случайной строки
function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
// Соединямся с БД
include "settings.php";
if(isset($_POST['submit']))
{
// Вытаскиваем из БД запись, у которой логин равняеться введенному
$query = mysqli_query($link,"SELECT user_id, user_password FROM users WHERE user_login='".mysqli_real_escape_string($link,$_POST['login'])."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
// Сравниваем пароли
if($data['user_password'] === md5(md5($_POST['password'])))
{
// Генерируем случайное число и шифруем его
$hash = md5(generateCode(10));
// Записываем в БД новый хеш авторизации и IP
mysqli_query($link, "UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");
// Ставим куки
setcookie("id", $data['user_id'], time()+60*60*24*30, "/");
setcookie("hash", $hash, time()+60*60*24*30,"/");
// Переадресовываем на страницу админки
if ($_POST['login'] === 'admin') {
header("Location: admin.php"); exit();
}
else {
header("Location: ../index.php"); exit();
}
}
else
{
echo "<h2>Вы ввели неправильный логин / пароль</h2>";
}
}
?>
<?php
include "settings.php";
//УЗНАЁМ ТЕКЩЕГО ПОЛЬЗОВАТЕЛЯ!!!
$sql = mysqli_query($link, "SELECT user_login FROM users WHERE user_hash= '".$_COOKIE['hash']."' ");
while ($result = mysqli_fetch_array($sql)) {
$username = $result['user_login'];
}
?>
<a href="../index.php"><img src="../img/logo.png" alt=""></a>
<h2 class="hello">Привет <b><?php echo "$username"; ?></b> !</h2>
<h2>Авторизация:</h2>
<form method="POST">
Логин: <br>
<input name="login" type="text" required placeholder="Введите Ваш логин..."><br>
Пароль: <br>
<input name="password" type="password" required placeholder="Введите Ваш пароль..."><br>
<input name="submit" type="submit" value="Войти">
</form>
<h2>Ещё не зарегистрированы?</h2>
<a href="register.php"><input type="submit" value="Зарегистрироваться"></a>
</body>
</html>
Register.php
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Курсовая работа ВБИо-302 | Первушин Егор</title>
<link rel="stylesheet" href="../css/style.css">
<link rel="shortcut icon" href="/img/favicon.ico">
</head>
<body style="text-align: center;">
<?php
// Соединямся с БД
include "settings.php";
if(isset($_POST['submit']))
{
$err = [];
// проверям логин
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
{
$err[] = "Логин может состоять только из букв английского алфавита и цифр";
}
if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
{
$err[] = "Логин должен быть не меньше 3-х символов и не больше 30";
}
// проверяем, не сущестует ли пользователя с таким именем
$query = mysqli_query($link, "SELECT user_id FROM users WHERE user_login='".mysqli_real_escape_string($link, $_POST['login'])."'");
if(mysqli_num_rows($query) > 0)
{
$err[] = "Пользователь с таким логином уже существует в базе данных";
}
// Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
$login = $_POST['login'];
// Убераем лишние пробелы и делаем двойное хеширование
$password = md5(md5(trim($_POST['password'])));