Cookie позволяют сохранять информацию на сайте, которую необходимо запомнить на определенное время и при последующей загрузки сайта, чтобы она выводилась автоматически.
Зачем вообще нужны cookie в PHP? На самом деле, их используют почти во всех движках, веб программах и проектах. Например, с их помощью можно хранить пароли, данные о пользователе, узнавать авторизован ли он, голосавал ли в опросе, с какого города зашел и т.д.
Разберемся с тем как установить cookie на сайте
Перед их установкой надо убедиться, что до вызова cookie нет никаких DOM элементов, т.е. шапка headers вашего сайта/страницы пуста. Если в процессе работы с куками у вас выйдет ошибка Cannot modify header information - headers already sent by - значит, до установки куков у вас выводится html содержимое, например, пробел, тег и т.п. Для проверки работоспособности куков создайте пустой php файл и впишите в него:
<?php
setcookie ("cookie1", 'Значение');
echo $_COOKIE["cookie1"];
?>
Запустите на своем сервере этот пример, после второго обновления страницы, у вас будет выводиться 'Значение'. Теперь добавьте перед <?php пробел - появится ошибка описанная выше.
Теперь о синтаксисе куков. Они задаются следующим образом:
setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Из него видно, что для задания кука обязателен только первый параметр name - имя кука. Рассмотрим остальные необязательные параметры.
- value - значение сookie.
- expires — время действия сookie. Если не установлено, то сookie удалится после закрытия пользователем браузера.
- path — директория, где может работать сookie. По умолчанию - без ограничений.
- domain — домен, где сookie будет работать, по умолчанию - текущий.
- secure — если нужно, чтобы сookie работал только по SSL соединению.
Примеры установки куков:
setcookie("cookie2", 'Значение'); //обычный кук
setcookie("cookie3", 'Значение',time()+3600); // период действия: 1 час
setcookie("cookie4", 'Значение',time()+3600*24*2); // период действия: 2 дня
Пример вывода кука:
echo $_COOKIE["cookie2"]; //т.е. пишем имя кука и его значение сразу выведится
Пример проверки, существует ли кук
if(isset($_COOKIE['cookie2'])) {echo 'Кук существует';}
Пример условия кука
if($_COOKIE['cookie2'] == 'Значение') {echo 'Значение кука задано верно';}
Пример удаления кука
SetCookie("cookie2",""); //для этого значение кука нужно обнулить
Теперь вы знаете, как работать с cookie. Используйте их разумно.