Використання змінних session і cookies

HTTP - це протокол "без збереження стану", т. Е. Він не має вбудованого способу збереження стану між двома транзакціями. Коли користувач відкриває спочатку одну сторінку сайту, а потім переходить на іншу сторінку того ж сайту, то, грунтуючись тільки на засоби, що надаються протоколом HTTP, неможливо встановити, що обидва запиту відносяться до одного користувача. слідів-

вательно, необхідний метод, що дозволяє відстежувати інформацію про користувача протягом одного сеансу зв'язку з Web-сайтом. Один з таких методів - управління сеансами за допомогою призначених для цього функцій. Для нас важливо те, що сеанс, по суті, являє собою групу змінних, які, на відміну від звичайних змінних, зберігаються і після завершення виконання PHP-сценарію.

Етапи при роботі з сесіями:

реєстрація змінних сесії і їх використання;

Найпростіший спосіб відкриття сесії - виклик функції session_start на початку PHP-сценарію:

Ця функція перевіряє, чи існує ідентифікатор сесії, і якщо немає, то створює його. Якщо ідентифікатор поточної сесії вже існує, то завантажуються зареєстровані змінні сесії.

Після ініціалізації сесії з'являється можливість зберігати інформацію в суперглобального масиві $ _SESSION. Нехай є файл page1.php, в якому в масив $ _SESSION зберігається змінна (лістинг 3.19).

// Розміщуємо значення в сесію

// Виводимо посилання на іншу сторінку

echo "інша сторінка";

На сторінках, де відбувається виклик функції session_start (), значення даних змінних можна отримати з суперглобального масиву $ _SESSION. У лістингу 3.20 приведено вміст сторінки page2.php, де беруться дані, раніше поміщені на сторінці page1.php.

// Виводимо вміст змінної $ _SESSION [param1] echo "$ _SESSION [param1] =". $ _SESSION [param1];

Після завершення роботи з сесією спочатку потрібно разрегістріровать всі змінні сесії, а потім викликати функцію unset ():

Механізм сookies зручний як для програмістів, так і для користувачів. Користувачі виграють за рахунок того, що їм не доводиться кожен раз заново вводити інформацію про себе, а програмістам сookies допомагають легко і надійно зберігати інформацію про користувачів. Cookies - це текстові рядки, що зберігаються на стороні клієнта і містять пари "ім'я-значення", з якими пов'язаний URL, за яким браузер визначає, чи потрібно надсилати cookies на сервер.

Установка cookies проводиться за допомогою функції setcookie. Синтаксис: bool setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

Аргументи функції setcookie:

name - ім'я установлюваної змінної cookie;

value - значення, що зберігається в cookie з ім'ям $ name;

expire - час в секундах з початку епохи, після закінчення якого поточна змінна cookie стає недійсною;

path - шлях, по якому доступна cookie;

domain - домен, з якого доступна cookie;

secure - директива, що визначає, чи доступна змінна cookie не по запросу HTPPS. За замовчуванням ця директива має нульове значення, що означає можливість доступу до cookie за звичайним запитом HTTP.

При роботі з cookies необхідно враховувати важливий момент: змінні cookie потрібно обов'язково встановлювати перед відправкою в браузер будь-яких заголовків, оскільки самі cookies мають вигляд заголовків. Якщо встановити cookies після будь-якого тексту, що відправляється в браузер, то виникне помилкова ситуація.

Значення, що зберігається в змінної cookie, можна отримати через глобальний масив $ _COOKIE []. Оскільки деякі користувачі відключають cookie в налаштуваннях своїх браузерів, для коректної роботи, в додаток, задіюється cookies, необхідно поміщати код, перевіряючий, чи включені cookies у відвідувача, і якщо немає, то що повідомляє йому про необхідність включити cookie (лістинг 3.21).

// з якої буде зроблена спроба встановити cookie

// встановлюємо cookie з ім'ям "test" setcookie ( "test", "1");