Меню
Разработки
Разработки  /  Информатика  /  Уроки  /  Прочее  /  Лабораторная работа. Создание формы регистрации и авторизации пользователей

Лабораторная работа. Создание формы регистрации и авторизации пользователей

19.03.2022

Содержимое разработки

Лабораторная работа №21

Создание формы регистрации и авторизации пользователей. Использование сессий

Часть 1 Регистрация

Продолжаем работу с файлами, созданными в лабораторной работе 20

  1. Измените файл register.php – добавьте поле загрузки файла и поле подтверждения пароля. Для формы установите атрибут enctype (определяет способ кодирования данных формы при их отправке на сервер) со значением multipart/form-data (данные не кодируются, это значение применяется при отправке файлов).

  1. Добавьте поле для загрузки изображения в таблицу users, созданную в лабораторной работе 20

  1. Файл vendor/signup.php

Добавьте переменную подтверждения пароля. Код добавления пользователя в базу данных пока лучше закомментировать.

  1. Проверим совпадение паролей.


Вывод сообщений с помощью сессии


  1. Для вывода ошибок создайте специальный блок для сообщений

  1. Чтобы передать сообщение внутрь блока можно воспользоваться сессиями.

Сессии являются простым способом хранения информации для отдельных пользователей с уникальным идентификатором сессии.

В самом начале php-кода в файлах register.php и signup.php необходимо запустить сессию, используя функцию session_start()

  1. После этого можно работать с суперглобальной переменной $_SESSION (это ассоциативный массив, содержащий переменные сессии).

Обратимся в условии к суперглобальной переменной $_SESSION с ключом message и запишем в нее сообщение. После этого перенаправим результат на страницу регистрации

  1. Переменная $_SESSION с ключом message будет доступна везде, поэтому ее можно вывести в файле register.php

  1. Проверьте как работает сессия при неправильных паролях. При перезагрузке сообщение должно пропадать, для этого необходимо уничтожить сессию с помощью команды unset.

  1. Чтобы блок появлялся только при наличии ошибки ввода паролей можно использовать следующий код:

Загрузка картинки

Изображение из формы передается в переменную $_FILES – суперглобальный массив, содержащий всю информацию о загруженных файлах.

Посмотрим, как выглядит данный массив.

Запишите под условным оператором код для вывода данного массива:

На странице регистрации загрузите фотографию и нажмите на кнопку Зарегистрироваться, после этого отобразится содержимое массива $_FILES. Получили массив с ключом [avatar], который также имеет ключи: [name] – имя файла, [type] – тип файла, [tmp_name] –путь на сервере:

Далее строки для вывода массива $_FILES удалите.

  1. Подготовим путь, в который будут загружаться картинки. Создайте папку uploads, в нее будем загружать картинки по имени (ключ [name]).

  1. Если второй раз загружать фото с таким же именем, то возникнут ошибки. Чтобы имя было уникально присоединим к нему функцию time(), которая возвращает временную метку в виде цифр.

Далее используем функцию для загрузки move_upload_file, первый аргумент – путь до файла на сервере, второй аргумент – путь, куда грузим файл.

Загрузите произвольный файл, нажмите кнопку Зарегистрироваться и проверьте папку uploads. Если все сделали правильно, то в папке uploads должен оказаться загруженный файл.



  1. Добавьте запрос на отправку всех полей в базу данных.

  1. Добавьте функцию mb5 для шифрования пароля

  1. Самостоятельно выведите сообщение об успешной регистрации на странице авторизации с помощью сессии

Часть 2 Авторизация

Стандартные операции работы в файлу index.php не описываются.

  1. В папке vendor создайте файл signin.php, который будет обрабатывать форму авторизации.

  2. В файле signin.php делаем запрос проверки пользователя. Ищем всех пользователей в базе данных, у которых логин и пароль совпадают с введенными на странице авторизации.

  1. Для подсчета найденных записей используется функция mysqli_num_rows. Проверьте работу данной функции при вводе зарегистрированного и незарегистрированного пользователя. Обратите внимание, что пароль нужно расшифровать с помощью функции md5

  1. Таким образом, для проверки существования записи необходимо использовать условный оператор:

Если ошибок нет, то значит авторизация проходит успешно. Далее необходимо получить данные о пользователе и вывести их на страницу профиля.

  1. Преобразуйте полученный объект в массив и посмотрите вид данного массива:



  1. Занесем в массив сессии SESSION данные о пользователе

  1. Создайте страницу профиля profile.php. Сделайте перенаправление на страницу при успешной авторизации.

  2. В profile.php создайте код для вывода данных об авторизованном пользователе. Для вывода используйте механизм сессий.

  1. Создайте страницу для обработки выхода logout.php, на ней удаляется сессия пользователя.



  1. Если набрать в адресной строке просто sign/profile.php, то откроется страница личного кабинета даже без авторизации. С другой стороны, в профиле также доступны страницы авторизации и регистрации через адресную строку.

Чтобы это устранить, добавьте следующие переадресации на всех страницах.







Дополнительное задание:

Измените код для регистрации, чтобы нельзя было зарегистрироваться с одинаковыми логинами.

-75%
Курсы повышения квалификации

Интерактивные методы в практике школьного образования

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
1000 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Лабораторная работа. Создание формы регистрации и авторизации пользователей (714.94 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт