Що таке cookies, як використовувати куки

Що таке cookies?
Справа в тому, що в процесі розвитку www-технологій і впровадження мов програмування в Інтернет, перед розробниками програм виникла дуже серйозна проблема - як зберігати результати виконання алгоритму для кожного конкретно взятого користувача на довгий час? Сам по собі протокол HTTP не має можливості фіксування результатів програмних процесів. Використання сесій також не є вирішенням проблеми, так як їх дія припиняється відразу після розриву з'єднання з сервером.

Проблема вирішилася з впровадженням механізму cookies (тобто, в перекладі з англійської, - "печиво"). Cookies володіють чудовою властивістю - вони зберігаються на вінчестері користувача і можуть зберігатися там практично необмежений час.

Реалізація механізму cookies в PHP.
Реалізація механізму cookies представлена ​​єдиною функцією setcookie (). Як і у випадку з HTTP заголовками, ця функція повинна бути викликана до відправки будь-яких даних віддаленого клієнта, не допускаються навіть "порожні" символи, то є прогалина, символи перекладу рядка і так далі.

Функція має наступний синтаксис:

setcookie (ім'я куки, значення, термін придатності, інформація про шляхи, домен, захищеність)

Всі параметри, крім імені cookie, є необов'язковими. Якщо cookie посилається тільки з цим параметром, то вона відразу ж знищується видаленим клієнтом, тому сам по собі цей параметр не несе інформаційного навантаження. Повнофункціональної cookie роблять два наступні параметри: значення, закладене в Кука, і час, до якого ця cookie може бути використана.

Значенням, яке несе cookie, може бути будь-який рядок ASCII символів. Наприклад, можна встановити cookie з ім'ям і прізвищем відвідувача, які він до цього ввів в поле форми.

$ Data = $ name. "||". $ Surname;
setcookie ( "username", $ data);

Зауважте, що відсилаються дані повинні бути оформлені у вигляді рядка, спроба прочитати відісланий раніше масив значень ні до чого не приведе.

Cookie, встановлена ​​у вищевказаному прикладі, буде знищена відразу після закриття броузера користувачем, так як за замовчуванням термін життя cookie встановлюється в нуль. Щоб змінити цей порядок, необхідно вказати третій параметр expire. Визначення цього параметра можна зробити двуми способами:

Задати отностітельно термін дії за допомогою функції time (), до якої додається час в секундах для зберігання cookie. Наприклад, щоб визначити cookie на дві години необхідно написати:
setcookie ( "test 1", "це тестова куки", time () + 3600 * 2); // 3600 - кількість секунд в годині

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

setcookie ( "test 3," ", 0," / mus ");

Останній параметр функції setcookie () вказує на те, що дана cookie повинна бути послана через захищене з'єднання (HTTPS). Цей параметр необхідний при установці cookie з конфіденційної даними.

setcookie ( "my_cookie", $ value. time () + 3600 * 24 * 5, "/", ".myphp.dem.ru", 1);

Читання cookie.
Звернення до встановленої cookie йде через її ім'я. Наприклад, продовжуючи приклад вище, прочитати cookie можна наступним чином:

echo "У вас збережено такі дані:
";
echo $ my_cookie;

Звернення до даних, збереженим в cookie, також може відбуватися через масив $ HTTP_COOKIE_VARS. Він схожий з іншими подібними масивами, такими як $ HTTP_POST_VARS і іншими, і містить всі значення, прочитані з cookie.

Видалення cookie.
Видалення cookie проводиться відправкою нової cookie з ім'ям видаляється без будь-яких додаткових параметрів.

$ Data = $ my_cookie;
setcookie ( "my_cookie");
echo "Наступні дані були видалені:
". $ Data;

На цьому закінчимо сьогоднішній урок. До зустрічі.