Що таке 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;
На цьому закінчимо сьогоднішній урок. До зустрічі.