- •«Санкт-Петербургский государственный электротехнический университет «лэти» имени в.И. Ульянова (Ленина)»
- •Описание управляющей сайтом среды Denwer
- •Создание базы данных «Base», ее таблицы и структура
- •1. Qweqwe
- •2.Gbook
- •Создание страниц сайта и самих форм регистрации, авторизации
- •1. Index.Php
- •2. Auth.Php
- •3. Reg.Php
- •4. Register.Php
- •5. Gost.Php
- •6. Add.Php
- •7. Read.Php
- •8. Otkat.Php
- •Index.Php Nick Password Неуспех Успех Gost.Php Name text Страница с сообщениями
- •Использованные в работе операторы и функции языка php и sql и их описание
- •Описание использованного в работе объекта cookies
4. Register.Php
<?php
mysql_connect('localhost', 'root', '') or die("Ошибка при подключении к базе данных"); // подключение БД
mysql_select_db('base') or die("Ошибка, база данных не найдена");
if (!empty($_POST['nick'])) //условие на проверку не пустого введенного имени
{ if (!empty($_POST['password'])) //условие на проверку не пустого введенного пароля
{ $_POST['nick'] = mysql_escape_string($_POST['nick']); // записывание данных из формы в переменную
$_POST['password'] = mysql_escape_string($_POST['password']);
//записывание данных из формы в переменную
$result=array(); // создание массива для дальнейшей сверки значений
$request = mysql_query("SELECT * FROM `qweqwe` where `nick`='{$_POST['nick']}'"); // выборка значений полей имени и пароля из БД
$content = mysql_fetch_assoc($request);
$result=$content;
// сверка данных с данными, хранящимися в БД
if(!empty($result))
{
die('Это имя занято');
}
mysql_query("INSERT INTO `qweqwe` (`nick`, `password`, `mail`) VALUES ('{$_POST['nick']}', '{$_POST['password']}', '{$_POST['mail']}')"); //запись данных из форм в БД
setcookie("nick",$_POST['nick']);
setcookie("password",$_POST['password']);
if(!($_POST["boxcheck"])==ON)
{
setcookie("password",$_POST['password'],mktime(0,0,0,6,7,2020));
setcookie("nick",$_POST['nick'],mktime(0,0,0,6,7,2020));
}
header("Location: gost.php"); // пересылка на страницу входа
}
else
{
echo "Введите пароль<br><a href=\"reg.php\">Вернуться назад </a>";
}//
}
else
{
echo "Введите имя<br><a href=\"reg.php\">Вернуться назад </a>";
}//
?>
Это скрипт для выполнения процедуры регистрации и записи объекта сookies
Путь до него G:\web\home\register\WWW\register.php
При выполнении скрипта возможны ошибки, о которых пользователь будет уведомлен соответствующими сообщениями:
Пустое поле логина – Ошибка «Введите имя» и ссылка на страницу авторизации
Пустое поле пароля – Ошибка «Введите пароль» и ссылка на страницу авторизации
Логин уже существующий в БД, т.е. занятое имя – Ошибка «Это Имя уже занято» и ссылка на страницу авторизации
Ошибка подключения к БД
Также у пользователя есть выбор: поставить или нет галочку «Запомнить меня». Она дает возможность сохранить объект cookies не как обычно до закрытия сеанса браузера, а до 2020 года
5. Gost.Php
Это страница гостевой книги
Путь до нее G:\web\home\register\WWW\gost.php
На странице представлены формы для имени и сообщения, управляемые add.php
По мимо самих форм для ввода на стартовой странице происходит проверка cookies на наличие в них логина и пароля, и если не нашли, то перенаправляем пользователя сразу на страницу авторизации.
Возможен вывод ошибки при сбоях подключения к БД
На странице присутствует форма разлогивания пользователя (очистки объекта cookies), управляемая скриптом otkat.php
Также страница вызывает read.php, скрипт, необходимый для отображения на странице записей, хранящихся в БД
Также благодаря объекту cookies на странице реализовано приветствие пользователя с выводом его логина.
Проблема фокуса страницы на форме ввода сообщения решена путем вывода сообщений из БД ниже формы, таким образом, фокус всегда остается на форме.
Скрин страницы гостевой книги
<?php
$_POST['nick'] = mysql_escape_string($_COOKIE['nick']);
// записывание данных из формы в переменную
$_POST['password'] = mysql_escape_string($_COOKIE['password']); //записывание данных из формы в переменную
mysql_connect('localhost', 'root', '') or die("Ошибка при подключении к базе данных"); // подключение БД
mysql_select_db('base') or die("Ошибка, база данных не найдена"); //Выбор БД
//поиск логина и пароля в таблице qweqwe, значения которых были взяты из cookies
$result=array(); // создание массива для дальнейшей сверки значений
$request = mysql_query("SELECT * FROM `qweqwe` where `nick`='{$_POST['nick']}' AND `password`='{$_POST['password']}'"); // выборка значений полей имени и пароля из БД
while($content = mysql_fetch_assoc($request))
{
$result=$content;
}
// сверка данных, взятых с cookies с данными, хранящимися в БД, если логин и пароль хранящиеся в cookies совпадут с логином и паролем, хранящимися в БД пользователь перенаправляется на страницу гостевой книги
if(empty($result))
{
header("Location: index.php");
}
?>
<html>
<head>
<title>Гостевая</title>
</head>
<body>
<!-- Форма разлогинивания пользователя -->
<form action = "otkat.php" >
<input type="submit" value="Выйти\Разлогин"/>
</form>
<center>
<h1>Гостевая</h1>
<?php
$nick=$_COOKIE['nick'];
echo("Здравствуй, <b>$nick</b>!<br><br>");
?>
<form action="add.php" method="POST"> <!-- подключение процедуры занесения записей в БД -->
<p align="center">
<b>Имя:</b> <input type="text" name="name" > <br/> <!-- поле ввода имени пользователя--> <br>
<b>Текст комментария:</b>
<br>
<textarea name="text" rows=10 cols=50 > </textarea> <br/> <!-- поле ввода сообщения-->
<input type="submit" value="Добавить"> <br/> <!-- кнопка отправки данных-->
</p>
</form>
<?php
include("read.php"); ?> <br/> <!-- подключение процедуры вывода сообщений из БД на страницу-->
</center>
</body>
</html>