Практическая работа №6. Регистрация пользователей
Создадим в базе данных mysite таблицу users для хранения данных пользователей сайта, как показано на рис.45
Рис.45 – Таблица users
В библиотеке functions.php создадим функцию addUser(), которая добавляет пользователя в базу.
Рис.46 - Функция addUser()
В файле reg.php добавим скрипт, который будет включаться при нажатии на кнопку «Зарегистрировать» (рис.47). Поскольку скрипт у нас единственный, то в атрибуте формы actionимя скрипта не указано.
Рис.47– Обработка формы регистрации
Форма отсылает параметры методом POST, поэтому мы получаем их из переменной $_POST[], которая также как и $_GET[], является хеш-массивом.
Функция htmlspecialchars() удаляет из переданного параметра все символы html-кода. Это делается для безопасности. Если не принять этой меры, то в поле можно ввести любой код на html или php, который потом выполнится на сервере.
Функция md5()сразу хеширует пароль, чтобы в базу данных был передан не пароль, а хеш.
Код файла alert.php для показа всплывающих сообщений показан на рис.48
Рис.48 – Всплывающее сообщение
Практическая работа №7. Авторизация пользователей
Для авторизации пользователей в php предусмотрен механизм сессий. Для подключения страницы сайта к сессии на этой странице нужно добавить функцию session_start(). Целесообразно также использовать так называемые переменные сессии. Они создаются на усмотрение разработчика и хранятся в хеш-массиве $_SESSION[]. Для нашей задачи удобно создать четыре переменные: для хранения емейла текущего пользователя, для хранения пароля текущего пользователя, признак ошибки авторизации и признак инициализации сессии. Инициализауию сессии и ее переменных удобно вынести в отдельную функцию initSession()(рис.49)
|
|
Рис.49 - Инициализация сессии
Теперь эту функцию следует выполнить на всех страницах, которые планируется подключить к сессии (рис.49) .
Рис.50 – Подключение к сессии
Добавим в библиотеку functions.php функцию checkUser(),которая будет проверять пользователя по емейлу и паролю в базе данных и возвращать true или false.
Рис.51 – Проверка пользователя
Теперь нужно внести изменения в тот участок когда, где подключается блок form_auth.php (например, рис.13). Дело в том, что нам не всегда нужна форма авторизации. Если пользователь уже авторизован и длится его сессия, то в этом блоке должна быть видна «панель пользователя»: емейл текущего пользователя и гиперссылка «Выход». А если пользователь не авторизован, то должна быть видна форма авторизации. Для реализации этого требования изменим код во всех файлах, где подключен блок form_auth.php (рис.52)
Рис.52 - Выбор между панелью пользователя и формой авторизации
Код блока user_panel.php показан на рис.53
|
|
Рис.53 – Блок «панель пользователя»
Далее создадим в отдельном файле скрипт auth.php, который будет включаться при нажатии на кнопку «Войти» (рис.54). Скрипт выполняет проверку пользователя и после совершает редирект на ту страницу, с которой выполнялся вход.
Рис.54 – Обработка формы авторизации
Гиперссылка на панели пользователя включает скрипт с завершением сессии пользователя (рис.55)
Рис.55 – Завершение сессии пользователя
Дата добавления: 2018-04-05; просмотров: 379; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!