Содержание
C самого начала поста я предположу, что вы уже знаете что такое куки и для чего их можно использовать. И собственно пост рассчитан как раз на тех людей, которые хотят узнать ответ на вопрос «КАК?» — то есть задействовать куки на своём сайте.
Установка куков, простой пример
Например тут мы установили куки my_name со значением Миша и в качестве периода её существования задали 5 дней в UNIX-формате времени. time() — текущее время + 86400 * 5 — 5 дней в секундах.
Получение куков через PHP
То, что вы видите в круглых скобках, это обычное условие if-else , только в сокращенном виде, в полном виде оно бы выглядело вот так:
Всё очень просто, верно же?
Функция setcookie() на самом деле имеет и несколько других параметров и пример можно усложнить, включив в неё директорию, домен, защиту и использование только по HTTP. Сейчас объясню.
По сути куки та же самая, но мы также назначили её к директории «
mycookie» для домена «truemisha.ru», следующим параметров, равным true разрешили использовать только в SSL-подключении и в следующем параметре, тоже равным true , запретили для использования в JavaScript.
Также имейте ввиду несколько вещей:
- Несмотря на то, что мы ставим срок истечения действия куков, они могут быть удалены пользователем в любое время.
- Пользователь может вообще выключить куки в браузере.
- Куки ни при каких условиях не получится использовать между разными доменами.
Удаление куков
Первый — если вы установите время истечения куки равным 0, то она будет удалена по истечении сессии в браузера (после закрытия)
Чтобы удалить куку немедленно, вам нужно установить ей пустое значение или срок истечения в прошедшем времени, например:
Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.
Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.
В сегодняшнем уроке мы поговорим о работе с cookie в PHP. Начнём с того, что же это такое, для чего это нужно и почему оно вообще появилось.
Как мы с вами уже знаем, в PHP мы можем работать с GET- и POST-запросами. Они позволяют нам передавать серверу данные, чтобы как-то повлиять на работу кода. Мы можем передать скрипту логин и пароль, он их проверит и разрешит нам доступ к какой-либо информации. Однако, это не позволит создать сессию между нами и сервером. То есть сервер не может нас «запомнить», и каждый раз, как мы хотим сказать что это мы, придется отправлять отдельный новый запрос с логином и паролем.
Продолжение урока будет доступно вам
после покупки курса PHP для начинающих
Cookie (куки) представляют небольшие наборы данных (не более 4 кБайт), с помощью которых веб-сайт может сохранить на компьютере пользователя любую информацию. С помощью куки можно отслеживать активность пользователя на сайте: залогинен пользователь на сайте или нет, отслеживать историю его визитов и т.д.
Для сохранения куки на компьютере пользователя используется функция setcookie(). Она имеет следующее определение:
Функция setcookie() может принимать следующие параметры:
name : имя cookie, которое будет использоваться для доступа к его значению
value : значение или содержимое cookie — любой алфавитно-цифровой текст не более 4 кБайт
expire (необязательный параметр): срок действия, после которого cookie уничтожаются. Если данный параметр не установлен или равен 0, то уничтожение cookie происходит после закрытия браузера.
path (необязательный параметр): путь к каталогу на сервере, для которого будут доступны cookie. Если задать ‘/’, cookie будут доступны для всего сайта. Если задать, например, ‘/mydir/’ , cookie будут доступны только из каталога /mydir/’ и всех его подкаталогов. По умолчанию значением является текущий каталог, в котором устанавливаются cookie.
domain (необязательный параметр): задает домен, для которого будут доступны cookie. Если это домен второго уровня, например, localhost.com, то cookie доступны для всего сайта localhost.com, в том числе и для его поддоменов типа blog.localhost.com.
Если задан поддомен blog.localhost.com, то cookie доступны только внутри этого поддомена.
secure (необязательный параметр): указывает на то, что значение cookie должно передаваться по протоколу HTTPS. Если задано true , cookie от клиента будет передано на сервер, только если установлено защищенное соединение. По умолчанию равно false .
httponly (необязательный параметр): если равно true , cookie будут доступны только через http протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, например, JavaScript. По умолчанию параметр равен false
Здесь устанавливаются две куки: "city" и "language". Первая куки уничтожается после закрытия браузера, а вторая — через 3600 секунд, то есть через час
В cookie можно сохранить любую информацию, но не стоит сохранять важные с точки зрения безопасности данные, например, пароли. А если и сохранять какую-то важную информацию, то следует хранить ее в зашифрованном виде.
Чтобы получить cookie, можно использовать глобальный ассоциативный массив $_COOKIE, например, $_COOKIE["city"] . Так, получим ранее сохраненные куки:
Сохранение в куки массивов имеет некоторые особенности. Например, сохраним следующий массив:
Теперь получим его и выведем на страницу:
Для удаления cookie достаточно в качестве срока действия указать какое-либо время в прошлом: