Практическая работа №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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!