
Крок 1: Створюємо сторінку для введення логіна і пароля. HTML-код форми авторизації в найпростішому варіанті може виглядати так:
Логін:
Пароль:
Сюди ж (в самий початок файлу) додамо php-код, який буде перевіряти правильність введеного відвідувачем логіна і пароля. На його початку напишемо:
session_start () -
Ця команда стартує нову сесію, якщо її ще не створено для цього відвідувача.
Потім перевіримо, чи є в сесії змінна з ім'ям 'userName' - в ній буде зберігатися ім'я, якщо відвідувач вже був авторизований. Якщо така змінна є - перенаправимо відвідувача на головну сторінку (index.php) і закінчимо виконання цього php-скрипта:
if ($ _ SESSION ['userName']) {
header ("Location: index.php") -
exit-
}
Весь інший код буде виконуватися тільки якщо користувач ще не ввів правильного логіна і пароля. Вкажемо які логін і пароль треба вважати правильними:
$ ValidName = 'Я свій!' -
$ ValidPass = 'секретний пароль'-
Потім перевіримо - чи відповідають відправлені з форми значення правильним. Оскільки у формі ми вказали метод передачі даних POST, то і читати їх слід з суперглобальні змінної $ _POST:
if ($ _ POST ['userName'] == $ validName && $ _POST ['UserPass'] == $ validPass) {
$ _SESSION ['UserName'] = $ validName-
header ("Location: index.php") -
exit-
}
Тут код у фігурних дужках {} буде виконуватися при правильних значеннях логіна і пароля. У рядку $ _SESSION ['userName'] = $ validName- ма записуємо в сесію змінну з ім'ям 'userName' містить логін тепер уже авторизованого користувача. Це і буде мітка про те, що доступ йому відкритий всюди до тих пір, поки дійсна його поточна сесія.
А на випадок якщо в форму введені неправильні дані додамо відповідне повідомлення:
else echo "
Логін або пароль невірні!
"-
Весь код, який треба зберегти файл з ім'ям login.php буде виглядати так:
lt;? php
session_start () -
if ($ _ SESSION ['userName']) {
header ("Location: index.php") -
exit-
}
$ ValidName = 'Я свій!' -
$ ValidPass = 'секретний пароль'-
if ($ _ POST ['userName'] == $ validName && $ _POST ['UserPass'] == $ validPass) {
$ _SESSION ['UserName'] = $ validName-
header ("Location: index.php") -
exit-
}
else echo "
Логін або пароль невірні!
"-
?gt;
Логін:
Пароль:
session_start () -
Всі змінні, які зберігаються в сесії, ми можемо прочитати з суперглобального масиву $ _SESSION. Нам потрібно перевірити значення змінної "userName" - Якщо відвідувач ще не авторизувався, то її не буде в масиві, і ми перенаправимо його на сторінку для введення логіна і пароля:
if (! $ _ SESSION ['authorized']) {
header ("Location: login.php") -
exit-
}
Весь код, який треба зберегти файл auth.php буде виглядати так:
lt;? php
session_start () -
if (! $ _ SESSION ['admin']) {
header ("Location: enter.php") -
exit-
}
?gt;
lt;? php
require "auth.php"-
?gt;
А щоб змінити пароль доступу потрібно буде в файлі login.php змінити значення цих змінних:
$ ValidName = 'Я свій!' -
$ ValidPass = 'секретний пароль'-
$ ValidName - логін, $ validPass - пароль.