Форма ввода логина и пароля php

Сегодня мы напишем авторизацию пользователя на сайте. Вся система будет работать следующим образом: пользователь вводит логин и пароль на форме входа, если они правильные – в Cookie браузера будет установлена специальная запись – auth token (авторизационный токен). При дальнейших запросах на сервер этот токен будет проверяться и если он будет правильным, то пользователь считается авторизованным.

Продолжение урока будет доступно вам
после покупки курса ООП в PHP

Учебник PHP

Практика

Важное

Регулярки

Работа с htaccess

Файлы, папки

Сессии и куки

Работа с БД

Практика по работе с БД в PHP

Перед чтением см. новые уроки раздела "Важное", которые появились выше.

Практика

Движок PHP

Продвинутые БД

Аутентификация

Практика

ООП и MVC

Абстрактные классы и интерфейсы

Трейты

ООП Магия

Практика

Практика: классы как набор методов

  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс ArrayConvertor
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TagHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FormHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TableHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс SessionShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс CookieShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FileManipulator
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс databaseShell TODO cart корзина flash шаблонизатор роутер контроллер кеш логи фалидатор
Читайте также:  Как выглядит встраиваемый духовой шкаф

Авторизация по паролю, расположенному в файле, подходит только в одном случае — когда ваш сайт будет использовать только один пользователь.

Конечно, в большинстве случаев это не так — вашим сайтом будет пользоваться большое количество человек.

Поэтому авторизацию пользователей следует реализовывать с помощью базы данных (см. учебник SQL, если вы не умете работать с базами данных).

Как обычно, начнем с самого простого и будем постепенно усложнять.

Несколько пользователей, база данных

Для начала создайте с помощью PhpMyAdmin таблицу users в какой-нибудь тестовой базе данных.

Таблица users должна выглядеть так:

id login (Логин) password (Пароль)
1 user 12345
2 admin 54321

У нас есть два пользователя — user и admin и пароли к ним.

Следующий код реализует простую авторизацию на БД. Что в нем происходит?

Пользователь вводит логин и пароль в поле авторизации, эти данные приходят в скрипт, который делает SQL запрос в базу данных и на основании результата судит о том, авторизовать пользователя или нет:

Добавляем сессию

Что должно происходить, если пользователь ввел успешную пару логин-пароль?

Мы должны стартовать сессию и отметить в ней информацию о том, что пользователь авторизовался.

В принципе, можно на этом ограничится и ничего больше не писать в сессию.

Однако, удобно было бы в дальнейшем иметь в сессии информацию об имени пользователя и его id.

В реальных условиях это может быть еще какая-либо информация из базы: email, дата регистрации, количество сообщений и другое. Все зависит от того, какая информация может вам понадобится.

Дополним наш код:

Полностью код авторизации примет такой вид:

Если мы теперь захотим вывести фразу ‘Привет, имя_пользователя’, то это будет сделать несложно:

Читайте также:  Как обновить биос asus rog

Неправильная пара логин-пароль

В том, случае если пользователь ввел неправильно логин или пароль — не следует сообщать ему, что именно он ввел неправильно.

Следует написать такую фразу: ‘Неправильный логин или пароль!’ — что-то в таком роде.

Зачем это нужно?

Затем, что хакеру сложнее было подобрать пару логин-пароль с помощью перебора.

Если дать ему информацию о том, что логин верен, а пароль — нет, он сможет перебирать только пароли для данного логина, и его задача станет существенно проще.

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Когда все решите — переходите к изучению новой темы.

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

Для этого необходимо создать два файла с расширением «php»:

  1. index.php – это главная страница сайта и здесь мы установим форму авторизации с двумя полями (логин и пароль) а ниже поставим надпись, которая просит авторизоваться и перейти по ссылке, а ссылка в свою очередь будет видна только авторизованному пользователю.
  2. proverca.php – на этой странице напишем код, который будет подключаться к базе данных и проверять существует ли пользователь с таким именем и паролем, если не существует, то выводим на экран сообщение об ошибке, а если существует, то автоматический переходим на главную страницу. При этом к нам привязывают две глобальные переменные (сессии : «$_SESSION[‘login’] и $_SESSION[‘id’]») которые служат как своеобразный пропуск.

Теперь когда мы попали на главную страницу с логином и уникальном номером, то «php скрипт» принимает нас за своих и показывает нам скрытую ссылку.

Читайте также:  Самые надежные газовые колонки отзывы

Будьте внимательны с именами глобальных переменных потому что «сессии» сохраняются в «куках» браузера пользователя на некоторое время даже после того как он покинул сайт и если ранее он был на другом сайте с такими же именами глобальных переменных то на вашем сайте он будет высвечиваться под старым логином.

Для того чтобы выйти нам потребуется файл который удалит все глобальные переменные «сессии». Мы этот файл привяжем к ссылке «выйти», которая будет видна только авторизированному пользователю.

Оставьте ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *