пример
Следующий пример создает куки с именем "user" со значением "John Doe" . Печенье истекает через 30 дней (86400 * 30) . "/" Означает , что печенье доступно на всей веб - сайте (otherwise, select the directory you prefer) в (otherwise, select the directory you prefer) , который (otherwise, select the directory you prefer) .
Затем мы извлечь значение куки "user" ( с использованием глобальной переменной $ _COOKIE). Мы также используем isset() функцию , чтобы выяснить , если куки установлен:
<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John
Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Выполнить пример » Определение и использование
setcookie() Функция определяет куки для отправки вместе с остальной частью заголовков HTTP.
Куки часто используется для идентификации пользователя. Печенье это небольшой файл, который сервер встраивает на компьютере пользователя. Каждый раз, когда тот же компьютер запрашивает страницу с помощью браузера, он будет посылать кук тоже. С PHP, вы можете не только создавать и извлекать значения куков.
Имя куки автоматически присваивается переменной с тем же именем. Например, если куки был послан с именем "user" , переменным автоматически создается с именем $ пользователя, содержащее значение куков.
Note: setcookie() функция должна появиться перед <html> тега.
Note: Значение куки автоматически URLencoded при отправке куки, и автоматически декодируются при приеме (для предотвращения URLencoding, использование setrawcookie() вместо этого).
Синтаксис
setcookie( name,value,expire,path,domain,secure,httponly );
параметр | Описание |
---|---|
name | Необходимые. Задает имя куки |
value | Необязательный. Задает значение куки |
expire | Необязательный. Указывает, когда истекает срок действия куки. Значение: time() + 86400 * 30, установит печенье истекает через 30 дней. Если этот параметр опущен или установлен в 0, печенье истекает в конце сеанса (when the browser closes) . Значение по умолчанию 0 |
path | Необязательный. Задает путь к серверу куки. Если установлено значение "/" , куки будут доступны в пределах всей области. Если установлено значение "/php/" , куки будут доступны в каталоге PHP и все подкаталоги РНР только. Значение по умолчанию является текущим каталогом, печенье создается в |
domain | Необязательный. Задает имя домена куки. Для того, чтобы сделать печенье на все поддомены example.com, установить домен "example.com" . Установка в www.example.com будет делать печенье доступны только в WWW субдомен |
secure | Необязательный. Определяет, будет ли или нет куки должны передаваться только через защищенное соединение по протоколу HTTPS. TRUE, указывает на то, что печенье будет установлен только если защищенное соединение существует. По умолчанию FALSE |
httponly | Необязательный. Если установлено значение TRUE , печенье будет доступен только через протокол HTTP (the cookie will not be accessible by scripting languages) . Этот параметр может помочь уменьшить кражи личных данных с помощью атак XSS. По умолчанию FALSE |
Технические подробности
Возвращаемое значение: | ИСТИНА на успех. FALSE при неудаче |
---|---|
PHP версии: | 4+ |
PHP Changelog: | PHP 5.5 - Атрибут Max-Age был включен в заголовке Set-Cookie, отправляемый клиент РНР 5.2 - Параметр HttpOnly был добавлен |
Еще примеры
пример
Несколько истекает срок для печенья:
<?php
$value = "Hello world!";
// cookie will expire when the
browser close
setcookie("myCookie", $value);
// cookie will expire
in 1 hour
setcookie("myCookie", $value, time() + 3600);
// cookie
will expire in 1 hour, and will only be available
// within the php
directory + all sub-directories of php
setcookie("myCookie", $value,
time() + 3600, "/php/");
?>
<html>
<body>
...some code...
</body>
</html>
Выполнить пример » пример
Чтобы изменить печенье, просто установите (again) печенье с помощью setcookie() функции:
<?php
$cookie_name = "user";
$cookie_value = "Alex
Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Выполнить пример » пример
Чтобы удалить куки, используйте setcookie() функцию с даты истечения срока действия в прошлом:
<?php
// set the expiration date to one hour ago
setcookie("user",
"" , time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user'
is deleted.";
?>
</body>
</html>
Выполнить пример » пример
Создайте небольшой скрипт , который проверяет , является ли cookies включены. Во- первых, попытайтесь создать тестовую печенье с setcookie() функции, а затем подсчитывают переменную массива $ _COOKIE:
<?php
setcookie("test_cookie", "test" , time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies
are disabled.";
}
?>
</body>
</html>
Выполнить пример » <PHP HTTP Ссылки