Всем привет!
Я снова в строю! В последнее время перемены в жизни вынуждают частенько отдаляться от блога, но тем не менее я здесь и никуда не ухожу! Скоро будет ряд очень полезных и познавательных уроков по заработку! Не пропустите! А пока я расскажу о том, как в php работать с куками. Как можно легко создать, удалить или обновить куки в php?
В последующих статьях мы рассмотрим работу куки в WordPress. А пока для общего развития разберем само понятие куки.
Не буду писать банальщину о том, что куки это в переводе печеньки и все такое. Информация эта, на мой взгляд, совершенно бесполезная. Скажу иначе, куки - это какая-то информация, которая хранится в Вашем браузере.
Например, Вы решили проголосовать в опросе. Далее Вы еще раз захотели проголосовать, но вместо принятия голоса вылезает сообщение: "Вы уже голосовали". Казалось бы, на сайте мы не регистрировались, откуда информация, что мы уже голосовали?
Все дело в куках. При голосовании, Вам в браузер добавляется небольшой файлик с информацией о том, что Вы уже голосовали. И при новом голосовании, скрипт на сервере проверяет, есть ли у Вас такой файлик. Если есть - значит Вы уже голосовали. Все просто.
Как создать куки в php?
Создаются куки в php благодаря функции setcookie. Эта функция принимает в себя следующие параметры:
setcookie('Имя','Значение', 'Срок', 'Путь', 'Домен', 'Защита');
- Обязательный здесь только один параметр - 'Имя'.
- "Значение" указывается значение куки, как уже все догадались.
- Срок - сколько времени куки будут работать? После окончания срока действия, кука автоматически будет удалена. Срок может быть бессрочным, в случае, если мы не указываем значение "срок". Срок устанавливается только в секундах!
- Путь - из какого каталога будет доступна кука. (обычно не указывается, и доступна из всех каталогов)
- Домен - Домен указывается автоматически. В случае, если доступ к куки нужно получать и на поддоменах, можно указать ".wpguru.ru". В таком случае кука будет доступна на всех сайтах с адресами: name.wpguru.ru
- Защита - если написано TRUE, тогда куки передаются по шифрованному соединению (ssl).
Создание куки на PHP
$name = 'wpguru'; //имя куки
$value = 'hello world'; //значение куки
$expire = time()+60*60*24; //сколько будет кука работать (1 день в секундах)
setcookie($name,$value,$expire); //установили куку с нашими параметрами
Теперь если посмотреть в браузере (я использую mozilla), то мы увидим куку в действии:
Как видите, куки установились ровно на 1 день, с нужным, нам, названием, и нужным значением.
Как обновить куки php?
Предположим нам нужно обновить значение куки. Т.е. название будет то же, но значение или срок действия надо изменить. В таком случае нам опять же понадобится функция setcookie.
Операция ничем не отличается от операции создания куков. Точно так же пишем похожий код, но с измененными данными:
<?php
$name = 'wpguru'; //имя куки
$value = 'hello world, ver. 2'; //значение куки
$expire = time()+60*60*24*7; //сколько будет кука работать (неделя в секундах)
setcookie($name,$value,$expire); //установили куку с нашими параметрами
?>
Теперь посмотрим, что содержится в браузере:
Как видите, обновление куки произошло успешно!
Как прочитать\получить куку php?
То, что в браузере отображается кука, это хорошо, но мы ведь ее создаем, чтобы впоследствии использовать в наших скриптах. Так как же получить куку? Для этого существует глобальный массив кук $_COOKIE, в котором находятся вообще все созданные куки. Обратиться к ним легко - достаточно знать имя.
Попробуем прочитать содержимое нашей куки wpguru. Для этого напишем простенький скриптик:
if(isset($_COOKIE['wpguru'])) {
echo 'Кука wpguru существует, и в ней лежит значение: ' . $_COOKIE['wpguru'];
}
else {
echo 'Кука wpguru не задана';
}
И глянем, что вывелось на экран:
Рекомендую всегда делать проверку на существования необходимых переменных, массивов, и тд. Так Вы избежите обидных ошибок в будущем.
Как удалить куку php?
Нет ничего проще, чем удалить куки. Для этого нам достаточно создать куку с тем же названием, с любым содержанием, обычно, с пустым, и просто задать дату истечения срока действия ту, которая уже прошла. Например:
setcookie('wpguru','',time()-4444);
Теперь кука удалится!
Одно важное замечание, о котором никто не говорит. Когда я только начинал изучать программирование, я удалил куку этим способом. Зашел в браузер - кука осталась. Перерыл все форумы - такая проблема часто встречается, но все отвечают мол: "Хм, не знаю, у меня работает". А причина вот в чем - кука удаляется, но не из файлов пользователя. Там она остается. И открывая браузер, Вы ее видите, но если мы обратимся к ней посредством $_COOKIE['wpguru'], то в результате будет 0. Вот так можно легко проверить, удалена ли кука.
На этом у меня все, в ближайшее время будут выходить еще статьи. Скорей всего я опишу в следующей статьи, какие планы ждут блог, и подробно расскажу про серию статей о заработке. Все будет в онлайн-режиме, т.е. я зарабатываю, и пишу статью. А не просто теорию вещаю.
Так что ждите.
До скорых встреч!