Практическая работа №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>'