Cookie

PHP предоставляет доступ к куки через функцию setcookie() и суперглобальную переменную $_COOKIE (как вариант $HTTP_COOKIE_VARS[]).

Установить куки можно, указав в первом аргументе имя, а во втором его значение.


setcookie('username', 'alex');
echo('<p>Вы вошли как' . $_COOKIE['username'] . '.</p>');

Если вы ранее устанавливали куки, то нет смысла устанавливать её ещё раз. Поэтому вызов метода обычно помещают в условие проверки наличия куки.


if( isset($_COOKIE["username"]))
    echo "Welcome " . $_COOKIE["username"];
else
    echo "Sorry... Who are you?";

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

Функция setcookie() принимает также третий необязательный аргумент, устанавливающий срок действия куки. При достижении этой даты куки автоматически удаляется. Если дата не устанавливается, то куки автоматически удаляется при закрытии браузера.

В теории, чтобы удалить cookie, можно вызвать setcookie() только с одним аргументом name, но этот метод не всегда работает. Лучше всего установить cookie с истекшим периодом действия.

Полный вид метода.


setcookie(name, value, expire, path, domain, security);
  • name — устанавливает имя файла cookie и хранится в переменной среды с именем HTTP_COOKIE_VARS. Эта переменная используется для доступа к файлам cookie
  • value — устанавливает значение именованной переменной и представляет собой контент, который вы действительно хотите сохранить
  • expiry — определяет время хранения cookie в секундах с 00:00:00 по Гринвичу 1 января 1970 года. По истечении этого времени cookie станет недоступным. Файлы cookie удаляются после закрытия браузера
  • path — Указывает каталоги, для которых действителен файл cookie. Одиночный символ прямой косой черты задает, что файл cookie является действительным для всех каталогов
  • domain — может использоваться для указания имени домена в очень больших доменах и должно содержать не менее двух периодов. Все файлы cookie действительны только для хоста и домена, для которых они созданы
  • security - Может быть установлено 1, чтобы указать, что файл cookie должен передаваться только через защищённое соединение HTTPS. В противном случае это значение равно 0, и это означает, что файл cookie может передаваться через обычное соединение HTTP
Реклама