Створення сесії

 

Перше, що потрібно зробити для роботи з сесіями (якщо вони вже налаштовані адміністратором сервера), це запустити механізм сесій. Якщо в налаштуваннях сервера змінна 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 і не закривати перед цим вікно браузера, тоді ідентифікатор сесії зміниться.