В этом гайде мы научимся авторизировать пользователей и оставлять cookie файл с сохраненным пользователем.
Этот гайд является продолжением гайда по регистрации на PHP, но всё будет понятно и так.
Для начала, для локального сервера мы будем пользоваться программой XAMPP, в качестве текстового редактора будет использоваться VSCode.
После установки XAMPP откройте его от имени администратора. И запустите первые 2 службы Apache и mySQL
Заходим в панель phpmyadmin по ссылке http://localhost/phpmyadmin
Создайте новую базу данных в нажав на "New"
Далее создаем таблицу из 5 столбцов.
Должно быть 5 колонок:
id - первая колонка любой таблицы, отметьте A_I (auto increment), будет повышаться автоматически.
login - логин пользователя
hLogin - хэшированный логин, который мы будем хранить в файле куки, с небольшими изменениями
hPassword - хэшированный пароль, обычная практика хранить пароль в зашифрованном виде в таблице.
email - email пользователя
После того, как настроили таблицу, нажимаем Save, чтобы сохранить таблицу
Если вы прошли гайд по регистрации на PHP, то можете использовать её.
Если вы НЕ проходили гайд, то кликнув по таблице users в панели phpmyadmin, нажмите сверху на Insert (вставить) и впишите следующие данные, их мы используем для теста:
И нажимаем Go, чтобы добавить запись.
Отлично, теперь переходим к написанию кода
Создаем в папке xampp>>htdocs нашу папку с сайтом. Пример: mywebsite.ru
В ней мы создаем файл
Здесь мы будем писать наш код
Не забудьте, сайт доступен по ссылке http://localhost/mywebsite.ru/login.php
Для начала создаем базовую структуру в нажем php файле
В body нам нужно создать форму, где будут вводиться данные. У нее будет метод post и аттрибут action = "index.php".
Мы сразу обернули инпуты в тег p для лучших стилей. Считывать данные из них мы будем через метод POST по имени инпута.
После формы пишем наш код PHP. Сначала считываем нажатую кнопку по имени кнопки с методом POST
В этом блоке мы будем писать весь наш код. Сначала проверяем наши поля на наличие ошибок, с помощью регулярных выражений (позволяющих проверить допустимые символы) и длины строк, передаваемые этим полям.
Дальше, если список ошибок пуст, мы будем хэшировать данные и узнаем, есть ли записи с таким логином в нашей таблице
Если записей не найдено, выводим ошибку
Если записи найдены, сравниваем введённые данные, с данными в таблице.
С помощью функции setcookie() мы создаем куки файл с хэшем логина, с помощью него можно будет идентифицировать пользователя
Помните, как мы проверяли на ошибки наши поля? Так вот, нам нужно их вывести в случае, если они найдены