Створення сесії
Перше, що потрібно зробити для роботи з сесіями (якщо вони вже налаштовані адміністратором сервера), це запустити механізм сесій. Якщо в налаштуваннях сервера змінна session.auto_start встановлена в значення "0" (якщо session.auto_start = 1, то сесії запускаються автоматично), то будь-який скрипт, в якому потрібно використовувати дані сесії, повинен починатися з команди
session_start ();
Отримавши таку команду, сервер створює нову сесію або відновлює поточну, ґрунтуючись на ідентифікаторі сесії, переданому запитом. Як це робиться? Інтерпретатор PHP шукає змінну, в якій зберігається ідентифікатор сесії (за умовчанням це PHPSESSID) спочатку в cookies, потім в змінних, переданих за допомогою POST-і GET-запитів. Якщо ідентифікатор знайдений, то користувач вважається ідентифікованим, проводиться заміна всіх URL і виставлення cookies. В іншому випадку користувач вважається новим, для нього генерується новий унікальний ідентифікатор, потім проводиться заміна URL і виставлення cookies.
Команду session_start () потрібно викликати у всіх скриптах, у яких доведеться використовувати змінні сесії, причому до виведення яких-небудь даних в браузер. Це пов'язано з тим, що cookies виставляються тільки до виведення інформації на екран.
Отримати ідентифікатор поточної сесії можна за допомогою функції session_id ().
Для наочності сесії можна задати ім'я за допомогою функції session_name ([імя_сессії]). Робити це потрібно ще до ініціалізації сесії. Отримати ім'я поточної сесії можна за допомогою цієї ж функції, викликаної без параметрів: session_name ();
Ім'я сесії - це ім'я параметра, в якому зберігається ідентифікатор сесії.
Приклад створення сесії;
<?
session_start ();
// Створюємо нову сесію або
// Відновлюємо поточну
echo session_id ();
// Виводимо ідентифікатор сесії
?>
<html>
<head> <title> My home page </ title> </ head>
... // Домашня сторінка
</ Html>
<?
echo session_name ();
// Виводимо ім'я поточної сесії.
// У даному випадку це PHPSESSID
?>
Якщо ж створити файл authorize.php, то значення змінних, що виводяться (id сесії та її ім'я) будуть такими ж, якщо перейти на нього з index.php і не закривати перед цим вікно браузера, тоді ідентифікатор сесії зміниться.