Практическая работа №10
Тема: Реализация задачи идентификации пользователей на сайте.
Ход работы:
1. Для сохранения файлов практической работы №10 в каталоге www создайте папку с именем 10. Скопируйте в нее все файлы практической работы №9.
Файловый состав приложения
Имя файла | Описание |
login_form. php | Титульная страница с фоормой входа в систему |
member. php | Главная страница пользователя прошедшего регистрацию |
change_passwd_form. php | Форма, заполняемая пользователем, желающим сменить пароль |
change_passwd_form. php | Форма, заполняемая пользователем для смены пароля |
change_passwd. php | Сценарий смены пароля |
2. Создайте форму вода пароля для зарегистрированных пользователей по образцу (рис 1). Сохраните с именем login_form. php.
3. При нажатии на ссылку Зарегистрироваться запустите форму регистрации нового пользователя register_form. php.
4. Создайте сценарий member. php, формирующий главную страницу для зарегестрированных пользователей (запуск по кнопке Вход). В сценарии member. php выполните следующие действия:
§ в начале сценария запустите сеанс с помощью функции session_start();
загрузите файлы header. inc, db_connect_fnc. php; создайте короткие имена переменных, для получения данных, введенных пользователем из формы – $username, $passwd; если все данные заданны, подключитесь к базе данных, с помощью функции db_connect();
с помощью sql-запроса проверьте наличие в БД пользователя с заданным именем и паролем $query="select * from user where username = '$username' and passwd=sha1('$passwd')";
- если заданный пользователь в БД отсутствует, выведите сообщение (рис 2), по нажатю ссылки Вход выполните запуск формы регистрации login_form. php (рис 1) если пользователь с таким именем и паролем в БД зарегистрирован, создайте переменную сеанса с именем valid_user, и сохраните в нее имя зарегестрированного пользователя
$_SESSION['valid_user'] = $username;
§ провертье наличие переменной $_SESSION['valid_user'] с помощью функции isset(), если она существует выведите Домашнюю страницу для зарегестрированных пользователей (рис 3). Укажите имя под которым пользователь вошел в систему;
§ В нужных местах выполните загрузку нижнего колонтитулла footer. inc.
5. Внесите изменения в файл login_form. php:
§ в начале сценария запустите сеанс с помощью функции session_start();
§
для дальнейшей работы сессии в случае регистрации других пользователей обнулите значение переменной сеанса при помощи функции unset():
unset($_SESSION['valid_user']);
6. При нажатии на кнопку Вход данные из формы login_form. php отправьте сценарию member. php. А также выполните переход по кнопке Перейти на страницу для зарегистрированных пользователей **** из файла register_new. php к файлу member. php.(рис.4)
7. Запустите титульную страницу входа в систему login_form. php. Протестируйте работу сценариев для уже зарегистрированного пользователя и только что прошедшего регистрацию.
*****
echo ' <form id="form1" name="form1" method="post" action="member. php">
<input type="hidden" name="username" id="username" value="'.$username.'" />
<input type="hidden" name="passwd" id="passwd" value="'.$passwd.'" />
<input name="next" type="submit" value="Перейти на страницу зарегистрированных пользователей" />
</form>'


