От автора: современные устройства не только помогают в жизнь, но еще и затрудняют ее. Мой сосед три часа простоял возле собственного подъезда. И все потому, что забыл дома ключи, а приехавшая в гости теща не узнала голос собственного зятя по домофону. Или не хотела «признать» :). Сегодня мы разберемся, что такое PHP авторизация на сайте и как ее правильно организовать, чтобы ваши пользователи «не мерзли» у входа.
Стандартная авторизация
Авторизация на сайте является необходимой функцией. С ее помощью владелец ресурса может попасть в административную панель и скорректировать работу систему, а контентщик – опубликовать новый материал.
Кроме этого на многих сайтах пользователям предоставляют доступ к дополнительному функционалу, которым не могут воспользоваться обычные посетители (комментирование, размещение фотографий, специализированные инструменты). Для авторизации человек должен быть зарегистрирован в системе ресурса.
В современном интернете стандартной считается модуль авторизации на сайте, построенный на PHP и MySQL. Вся информация о пользователе, полученная во время регистрации, записывается в специальную таблицу БД MySQL. Набор сохраняемых значений на каждом сайте может варьироваться, но обязательными являются логин и пароль пользователя.
Человеку, зашедшему на любимый ресурс, нужно сообщить его системе о том, что он является зарегистрированным (постоянным) пользователем ресурса. Для этого в специальную форму посетитель вводит свой логин и пароль. Затем их значение с помощью скрипта авторизации на PHP и MySQL сравнивается с данными, сохраненными в СУБД. Если они совпадают, то пользователь получает доступ к расширенному функционалу ресурса.

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!Здесь еще можно упомянуть о системе ролей, реализованных во многих популярных движках. В них каждой учетной записи предоставляется доступ к определенному набору инструментов. Более подробно этот процесс описан в материалах, посвященных CMS.
Мы это проходили
Да, этот процесс мы уже рассматривали в предыдущих материалах. Но мы ни разу не упоминали о такой важной составляющей, как сессии. С их помощью пользователь может после авторизации посещать все разделы ресурса, и не проходить данную процедуру на каждой странице. Рассмотрение темы о том, как сделать авторизацию на сайте PHP, было бы не полным без изучения возможностей сессий.
Начнем, как всегда, с формы. Вот ее разметка:
1 2 3 4 5 6 7 |
<form method="post"> <input type="text" name="l" placeholder="Enter your login" style="color: rgb(51,255,51)"/><br/> <br/> <input type="password" name="p" placeholder="Enter your password" style="color: rgb(51,255,51)"/><br/> <br/> <input type="submit" value="Enter" /> </form> |
Обработчик с элементами ООП и бес СУБД
Вы не ослышались: сегодняшний скрипт авторизации на PHP будет без СУБД. Точнее, это сделано намеренно, чтобы акцентировать внимание на сессиях. А для обработчика мы создадим отдельный класс и наполним его специализированными функциями.
Все переменные сессии доступны через одноименный глобальный массив PHP $_SESSION. Для начала запускаем сессию и устанавливаем «правильную» кодировку:
1 2 |
header('Content-Type: text/html; charset=utf-8'); session_start(); |
После этого создаем специальный класс. В нем задаем значения для пароля и логина. Затем прописываем определения функций, которые нужны для обработки данных авторизации.
1 2 3 |
class Authoris_sess { private $_lg = "user"; private $_pass = "php"; |

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!Обратите внимание, что в PHP скрипте авторизации на сайте большая часть значений переменных берется из массива $_SESSION.
Функция maybe() проверяет, была ли начата сессия и авторизирован ли пользователь в системе ресурса.
1 2 3 4 5 6 |
public function maybe() { if (isset($_SESSION["authoris"])) { return $_SESSION["authoris"]; } else return false; } |
С помощью auth() проводим авторизацию. Проверяем правильность введенного пароля и логина.
1 2 3 4 5 6 7 8 9 10 11 |
public function auth($lg, $pass) { if ($lg == $this->_lg && $pass == $this->_pass) { $_SESSION["authoris"] = true; $_SESSION["l"] = $lg; return true; } else { $_SESSION["authoris"] = false; return false; } } |
Функция give_login() возвращает пользовательский логин, записанный в сессии. С помощью vihod() – закрываем сессию:
1 2 3 4 5 6 7 8 9 |
public function give_login() { if ($this->maybe()) { return $_SESSION["l"]; } } public function vihod() { $_SESSION = array(); session_destroy(); } |
Доделаем авторизацию на сайте PHP. В конце файла обработчика создаем экземпляр класса Authoris_sess и добавляем несколько проверок: валидность пароля и логина, а также нажатие на кнопку выхода (окончания сеанса).
1 2 3 4 5 6 7 8 9 10 11 12 |
$auth = new Authoris_sess(); if (isset($_POST["l"]) && isset($_POST["p"])) { if (!$auth->auth($_POST["l"], $_POST["p"])) { echo "<p style=\"color:red;\">Неправильный пароль или логин!</p>"; } } if (isset($_GET["exit"])) { if ($_GET["exit"] == 1) { $auth->vihod(); header("Location: ?exit=0"); } } |
Доводим до ума форму
В файл формы вначале «прикрепляем» обработчик. Затем проверяем, авторизирован пользователь или нет. Если да, то выводим для него кнопку окончания сессии. Если нет, то показываем форму:
1 2 3 4 5 6 7 8 9 10 |
<?php require("handler.php"); if ($auth->maybe()) { echo "Hello, " . $auth->give_login() ; echo "<br/><br/><a href=\"?exit=1\">Exit</a>"; } else { ?> //Здесь код формы } ?> |
Оба файла проекта можно скачать по этой ссылке. Сегодняшний материал получился интересным и без модуля PHP авторизации на другом сайте. Для сохранения и записи значений мы использовали переменные сессии. Затем их значения сохраняются на стороне сервера и «всплывают» при следующем визите. С их помощью можно повысить степень индивидуализации функционала для каждого пользователя. Но этим мы займемся как-нибудь в следующий раз :).

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!
Разработка веб-приложения на PHP
Скачайте видеокурс и узнайте, как создать веб-приложение на PHP
Скачать