Використання змінних 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");