4. Управління користувачами,
привілеями (правами) та сеансами
На даному етапі використовуються вбудовані засоби управління сеансами PHP4. Сеанс розуміють як проміжок часу роботи користувача з системою (з моменту його реєстрації в системі (login) і до завершення ним роботи з системою [logout]), коли кожна виконувана дія здійснюється від імені саме цього користувача. Оскільки WEB-мережа базується на ПРОТОКОЛІ ПЕРЕДАЧІ ГІПЕРТЕКСТУ (HTTP, HyperText Transfer Protocol), який є протоколом, що працює без встановлення з’єднання (кожен запит, направлений до WEB-сервера, є незалежним від усіх інших запитів), отже потрібен засіб групування запитів від однієї і тієї ж особи протягом сеансу. Таким засобом є вбудовані функції управління сеансами PHP4:
session_start() — використовується для активації управління сеансом у PHP4; її необхідно викликати перед застосуванням будь-яких інших функцій сеансу;
session_register() — використовується у PHP для визначення змінних, які потрібно контролювати протягом сеансу.
Типовий виклик цих функцій має вигляд:
session register ("SESSION").
Цей виклик повдомляє PHP, що потрібно активізувати менеджер сеансів, та вказує PHP, що змінна SESSION є змінною сеансу. Можна реєструвати довільну кількість змінних сеансу, але, можливо, краще реєструвати тільки одну змінну сеансу з іменем SESSION, і все інше, в чому буде виникати потреба, поміщати в цю змінну. Наприклад, замість
session register("var1");
session register("var2");
$var1 = 5;
$var2 = 6;
можливий запис:
session register("SESSION");
$SESSION["var1"] = 5;
$SESSION["var2"] = 6;
Приклад діючого сценарію (testsession.php):
<?
Session_start();
Session_register("SESSION");
if (! isset($SESSION)) {
$SESSION["count"] = 0;
echo "<li> Лічильник ініційовано! Будь ласка, перезавантажте сторінку для його збільшення";
} else {
echo "<li> Продовжуємо сеанс $PHPSESSID";
$SESSION["count"]++;
}
echo "<li> Значення лічильника $SESSION[count] ";
?>
При першому відкритті сценарію у броузері буде виведено текст: «Лічильник ініційовано! Будь ласка, перезавантажте сторінку для його збільшення», і кожного разу при перезавантаженні сторінки значення лічильника буде збільшуватися на одиницю. Виводиться також ІДЕНТИФІКАТОР сеансу. Успішність тесту гарантує, що менеджер сеансів PHP4 працює. Принцип роботи менеджера сеансів PHP4: у результаті виклику session_start() PHP4 визначає унікальний ІДЕНТИФІКАТОР сеанса клієнта. Цей ІДЕНТИФІКАТОР сеансу є MD5-хешем і зберігається як cookie на робочій станції клієнта. Кожного разу, коли клієнт направляє запит, PHP4 зчитує цей ІДЕНТИФІКАТОР сеансу і завантажує дані сеансу. Виклик session_register() повідомляє PHP4, які змінні потрібно зберігати протягом сеансу. Кожна сторінка при завантаженні зчитує встановлені раніше значення зареєстрованих змінних, а коли сторінка закінчується, PHP4 зберігає поточні значення зареєстрованих змінних. За замовчуванням PHP4 зберігає інформацію про поточні сеанси в тимчасових файлах у каталозі D:\XAMPP|TMP. В цьому можна переконатися переглянувши вміст цього каталогу на зразок:
sess7d7f97afb6759948f554b00272494е52
sess8ab78830е151add9d79b628958ce4eb9
sess6dd9ea8е61cd49cd3ad6de8с8b8885е8
sessа3058а6bb1baf57f565с3844с8810f4b
Кожен з цих файлів зберігає інформацію про поточні сеанси. Для перегляду вмісту файлів можна скористатися програмою перегляду командної оболонки FAR. Ось зразок такого виводу на екран:
SESSION¦а:1:{s:5:"count";i:234;} |