PHP setrawcookie()Функции


PHP HTTP 参考手册Полное справочное руководство по PHP HTTP

Определение и использование

Функция setrawcookie() отправляет HTTP-куки без URL-кодирования значения куки.

Куки — это переменная, отправляемая сервером браузеру. Куки обычно представляют собой небольшой текстовый файл, который сервер встраивает в компьютер пользователя. Эти куки отправляются каждый раз, когда тот же компьютер запрашивает страницу через браузер.

Имя куки автоматически присваивается переменной с тем же именем. Например, если отправляется куки с именем "user", автоматически создаётся переменная с именем $user, содержащая значение куки.

Куки должны быть установлены до отправки любого другого вывода клиенту.

Возвращает TRUE при успехе или FALSE при неудаче.

Синтаксис

setrawcookie(name,value,expire,path,domain,secure)

Параметр Описание
name Обязательный. Указывает имя cookie.
value Обязательный. Указывает значение cookie.
expire Необязательно. Задаёт время истечения срока действия cookie.

time()+3600*24*30 установит срок действия cookie в 30 дней. Если этот параметр не задан, cookie автоматически истечёт по завершении сессии (т.е. при закрытии браузера).

path Необязательно. Задаёт серверный путь cookie.

Если для path установлено значение "/", куки будут работать во всём домене. Если для path установлено значение "/test/", куки будут работать в каталоге test и всех его подкаталогах. Значение path по умолчанию — текущий каталог, в котором находятся куки.

domain Необязательно. Задаёт домен cookie.

Чтобы куки работали во всех поддоменах example.com, необходимо установить домен куки в ".example.com". Если установить домен куки в www.example.com, куки будут работать только в поддомене www.

secure Необязательно. Указывает, требуется ли защищённое HTTPS-соединение для передачи cookie. Установите TRUE, если cookie нужно передавать по защищённому HTTPS-соединению. По умолчанию — FALSE.


Советы и примечания

Совет:Вы можете получить значение cookie с именем "user" через $HTTP_COOKIE_VARS["user"] или $_COOKIE["user"].

Примечание:Функция setrawcookie() почти идентична функции setcookie(), за исключением того, что она не выполняет автоматическое URL-кодирование значения cookie при отправке клиенту.


Пример 1

Установить и отправить cookie:

<?php
$value = "my cookie value";

// отправить простое cookie
setrawcookie("TestCookie",$value);
?>

<html>
<body>

...
...

<?php
$value = "my cookie value";

// отправить cookie, срок действия которого истекает через 24 часа
setrawcookie("TestCookie",$value, time()+3600*24);
?>

<html>
<body>

...
...


Пример 2

Различные способы получить значение cookie (после установки cookie):

<html>
<body>

<?php
// Вывести отдельные cookie
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";

// Вывести все cookie
print_r($_COOKIE);
?>

</body>
</html>

Приведённый выше код выведет:

моё значение cookie
моё значение cookie
Array ([TestCookie] => моё значение cookie)


Пример 3

Удаление cookie путем установки даты истечения срока действия на прошедшую дату/время:

<?php
// Установите дату истечения срока действия на час назад
setrawcookie ("TestCookie", "", time() - 3600);
?>

<html>
<body>

...
...


Пример 4

Создание cookie-массива:

<?php
setrawcookie("cookie[three]","cookiethree");
setrawcookie("cookie[two]","cookietwo");
setrawcookie("cookie[one]","cookieone");

// вывести cookies (после перезагрузки страницы)
if (isset($_COOKIE["cookie"]))
{
foreach ($_COOKIE["cookie"] as $name => $value)
{
echo "$name : $value <br />";
}
}
?>

<html>
<body>

...
...

Приведённый выше код выведет:

three : cookiethree
two : cookietwo
one : cookieone


PHP HTTP 参考手册Полное справочное руководство по PHP HTTP Другие расширения