Функции PHP setcookie()Functions
Полное справочное руководство по PHP HTTP
Определение и использование
Функция setcookie() отправляет HTTP cookie клиенту.
Cookie — это переменная, отправляемая с сервера в браузер. Cookie обычно представляет собой небольшой текстовый файл, который сервер внедряет на компьютер пользователя. Этот cookie отправляется всякий раз, когда тот же компьютер запрашивает страницу через браузер.
Для cookie автоматически создается переменная с тем же именем. Например, если отправляется cookie с именем "user", автоматически создается переменная с именем $user, содержащая значение cookie.
Cookie должен быть установлен до отправки клиенту любого другого вывода.
Возвращает TRUE при успехе или FALSE при неудаче.
Синтаксис
| Parameters | Описание |
|---|---|
| name | Обязательный. Указывает имя cookie. |
| value | Обязательный. Указывает значение cookie. |
| expire | Необязательно. Задаёт время истечения срока действия cookie. time()+3600*24*30 установит срок действия cookie в 30 дней. Если этот параметр не задан, cookie автоматически истечёт по завершении сессии (т.е. при закрытии браузера). |
| path | Необязательно. Задаёт серверный путь cookie. Если путь задан как "/", cookie будет действителен во всём домене. Если путь задан как "/test/", cookie будет действителен в каталоге test и всех его подкаталогах. Значение пути по умолчанию — текущий каталог, в котором находится cookie. |
| domain | Необязательно. Задаёт домен cookie. Чтобы cookie был действителен во всех поддоменах example.com, нужно задать домен cookie как ".example.com". Если задать домен cookie как www.example.com, cookie будет действителен только в поддомене www. |
| secure | Необязательно. Указывает, требуется ли защищённое HTTPS-соединение для передачи cookie. Установите TRUE, если cookie нужно передавать по защищённому HTTPS-соединению. По умолчанию — FALSE. |
Советы и примечания
Совет:Вы можете получить значение cookie с именем "user" через $HTTP_COOKIE_VARS["user"] или $_COOKIE["user"].
Примечание:При отправке cookie значение автоматически URL-кодируется. При получении значение автоматически URL-декодируется. Если это не нужно, можете использовать setrawcookie().
Пример 1
Установить и отправить cookie:
$value = "my cookie value";
// отправить простое cookie
setcookie("TestCookie",$value);
?>
<html>
<body>
...
...
$value = "my cookie value";
// отправить cookie, срок действия которого истекает через 24 часа
setcookie("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 путем установки даты истечения срока действия на прошедшую дату/время:
// Установите дату истечения срока действия на час назад
setcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...
Пример 4
Создание cookie-массива:
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("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 Другие расширения