C самого начала поста я предположу, что вы уже знаете что такое куки и для чего их можно использовать. И собственно пост рассчитан как раз на тех людей, которые хотят узнать ответ на вопрос «КАК?» — то есть задействовать куки на своём сайте.
Например:
$name = 'Миша'; setcookie('my_name',$name,time() + (86400 * 5)); // 86400 = 1 день в секундах
Например тут мы установили куки my_name
со значением Миша
и в качестве периода её существования задали 5 дней в UNIX-формате времени. time()
— текущее время + 86400 * 5
— 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 );
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.