Cookies. Примеры в PHP

Опубликовано: 01.09.2018

видео Cookies. Примеры в PHP

WEB API основы работы и примеры на PHP с использованием CUrl

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



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

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

Например:

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

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


Login form using session and cookie with remember me in php

Получение куков через 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 ) ;

Смотрите также

rss