Cookies. Примеры работы с куками в PHP

C самого начала поста я предположу, что вы уже знаете что такое куки и для чего их можно использовать. И собственно пост рассчитан как раз на тех людей, которые хотят узнать ответ на вопрос «КАК?» — то есть задействовать куки на своём сайте.

Установка куков, простой пример


Чтобы установить куки, вам как минимум нужно задать название, содержание и количество времени, которое эта кука будет существовать.

Например:

$name = 'Миша';
setcookie('my_name',$name,time() + (86400 * 5)); // 86400 = 1 день в секундах

Например тут мы установили куки my_name со значением Миша и в качестве периода её существования задали 5 дней в UNIX-формате времени. time() — текущее время + 86400 * 5 — 5 дней в секундах.

Получение куков через PHP


Теперь, когда куки установлены, давайте попробуем вывести их на сайте (если конечно уже не прошло 5 дней :), для этого мы просто воспользуемся массивом $_COOKIE, который кстати можно просто целиком поглядеть через функцию print_r(), но мы пойдём более правильным путём, проверим ещё, что куки существует.

echo 'Привет, '. ( $_COOKIE['my_name'] != '' ? $_COOKIE['my_name'] : 'Гость') . '!'; // Привет, Миша!

То, что вы видите в круглых скобках, это обычное условие if-else, только в сокращенном виде, в полном виде оно бы выглядело вот так:

if( $_COOKIE['my_name'] != '' )
	echo 'Привет, ' . $_COOKIE['my_name'] . '!';
else
	echo 'Привет, Гость!';

Всё очень просто, верно же?

Функция setcookie() на самом деле имеет и несколько других параметров и пример можно усложнить, включив в неё директорию, домен, защиту и использование только по HTTP. Сейчас объясню.

setcookie('my_name', $name, time() + (86400* 5), '/~mycookie/','truemisha.ru',true,true);

По сути куки та же самая, но мы также назначили её к директории «~mycookie» для домена «truemisha.ru», следующим параметров, равным true разрешили использовать только в SSL-подключении и в следующем параметре, тоже равным true, запретили для использования в JavaScript.

Также имейте ввиду несколько вещей:

  • Несмотря на то, что мы ставим срок истечения действия куков, они могут быть удалены пользователем в любое время.
  • Пользователь может вообще выключить куки в браузере.
  • Куки ни при каких условиях не получится использовать между разными доменами.

Удаление куков


Тут есть несколько моментов.

Первый — если вы установите время истечения куки равным 0, то она будет удалена по истечении сессии в браузера (после закрытия)

Чтобы удалить куку немедленно, вам нужно установить ей пустое значение или срок истечения в прошедшем времени, например:

setcookie ( 'my_name', '', time()-5 );

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал