php сессии. Авторизация на php

Эта статья расчитана на пользователей, которые только начинают постигать азы php, веб программирования. Для расмотрения механизма сессий в php предлагаю разобрать вариант авторизации php.

Задача: необходимо реализовать механизм простейшей авторизации.

Приступаем. Для начала необходимо в самом начале скрипта ввести команду, которая инициализирует работу сессии:

session_start();

Работа с сессионными переменными происходит через массив $_SESSION. Но повторюсь что он будет доступен только после выполнении функции , написаной выше.

В нашем примере сделаем так:

признак авторизации будем хранить в сессионной переменной $_SESSION['is_auth'] , если в ней установлена значение "Y", то пользователь авторизован и выводим сообщение "Привет", если значение не установлено, то есть пользователь не авторизован - то выводим форму авторизации и авторизуем пользователя. Смотрим пример:

session_start();
/// авторизуем пользователя если он ввел данные
if (isset($_POST['submit_auth'])){
 if ($_POST['login']=='admin' && $_POST['pass']=='123456') $_SESSION['is_auth']='Y';
}
/// проверяем авторизован ли пользователь
if (isset($_SESSION['is_auth']) && $_SESSION['is_auth']=='Y'){
 print "Привет";
}else{
 print "<form action='' method='POST'>";
 print "Логин:<input type='text' name='login' value=''><br>
  Пароль:<input type='password' name='pass' value=''><br>
  <input type='submit' name='submit_auth' value='Авторизоваться'>";
 print "</form>";
}

Если открыть сначала этот скрипт то появится форма авторизации, вводим admin/123456 и авторизуемся. Потом на время действия сессии всегда будет выходить сообщение "Привет".

Вообще обычно хранят в сессии не переменную 'is_auth', а например id пользователя, или хэш какой - нибудь. Ну в общем это уже для усложнения. Пишите вопросы - на что смогу отвечу.

Запись опубликована в рубрике Веб-программирование. Добавьте в закладки постоянную ссылку.

1 комментарий: php сессии. Авторизация на php

  1. liveintv говорит:

    Отличный пример! Спасибо!