PHP setrawcookie()Функции
Полное справочное руководство по PHP HTTP
Определение и использование
Функция setrawcookie() отправляет HTTP-куки без URL-кодирования значения куки.
Куки — это переменная, отправляемая сервером браузеру. Куки обычно представляют собой небольшой текстовый файл, который сервер встраивает в компьютер пользователя. Эти куки отправляются каждый раз, когда тот же компьютер запрашивает страницу через браузер.
Имя куки автоматически присваивается переменной с тем же именем. Например, если отправляется куки с именем "user", автоматически создаётся переменная с именем $user, содержащая значение куки.
Куки должны быть установлены до отправки любого другого вывода клиенту.
Возвращает TRUE при успехе или FALSE при неудаче.
Синтаксис
| Параметр | Описание |
|---|---|
| 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:
$value = "my cookie value";
// отправить простое cookie
setrawcookie("TestCookie",$value);
?>
<html>
<body>
...
...
$value = "my cookie value";
// отправить cookie, срок действия которого истекает через 24 часа
setrawcookie("TestCookie",$value, time()+3600*24);
?>
<html>
<body>
...
...
Пример 2
Различные способы получить значение cookie (после установки cookie):
<body>
<?php
// Вывести отдельные cookie
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";
// Вывести все cookie
print_r($_COOKIE);
?>
</body>
</html>
Приведённый выше код выведет:
моё значение cookie
Array ([TestCookie] => моё значение cookie)
Пример 3
Удаление cookie путем установки даты истечения срока действия на прошедшую дату/время:
// Установите дату истечения срока действия на час назад
setrawcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...
Пример 4
Создание cookie-массива:
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>
...
...
Приведённый выше код выведет:
two : cookietwo
one : cookieone
Полное справочное руководство по PHP HTTP Другие расширения