Функция setcookie() отправляет клиенту HTTP-cookie.
Файл cookie — это переменная, отправляемая сервером браузеру. Файлы cookie обычно представляют собой небольшие текстовые файлы, которые сервер встраивает в компьютер пользователя. Этот файл cookie отправляется каждый раз, когда тот же компьютер запрашивает страницу через браузер.
Имя файла cookie автоматически присваивается одноименной переменной. Например, если отправляемый файл cookie называется «user», автоматически будет создана переменная с именем $user, содержащая значение файла cookie.
Файл cookie должен быть назначен до отправки клиенту каких-либо других выходных данных.
В случае успеха функция возвращает TRUE. Возвращает FALSE в случае неудачи.
setcookie(имя,значение,срок действия,путь,домен,безопасный)
параметр | описывать |
---|---|
имя | Необходимый. Указывает имя файла cookie. |
ценить | Необходимый. Указывает значение файла cookie. |
истекает | Необязательный. Указывает срок действия cookie. time()+3600*24*30 установит срок действия cookie на 30 дней. Если этот параметр не установлен, срок действия файла cookie автоматически истечет после завершения сеанса (то есть при закрытии браузера). |
путь | Необязательный. Указывает путь к серверу для файлов cookie. Если для пути установлено значение «/», файл cookie будет действителен для всего доменного имени. Если для пути установлено значение «/test/», файл cookie будет действителен для тестового каталога и всех его подкаталогов. Значением пути по умолчанию является текущий каталог, в котором находится файл cookie. |
домен | Необязательный. Указывает доменное имя файла cookie. Чтобы файл cookie был действительным во всех субдоменах example.com, вам необходимо установить доменное имя файла cookie «.example.com». Если вы установите доменное имя файла cookie на www.example.com, файл cookie действителен только в субдомене www. |
безопасный | Необязательный. Указывает, нужно ли передавать файлы cookie через безопасное соединение HTTPS. Установите значение TRUE, если файлы cookie необходимо передавать по защищенному соединению HTTPS. По умолчанию установлено значение ЛОЖЬ. |
Совет: Доступ к значению файла cookie с именем "user" можно получить через $HTTP_COOKIE_VARS["user"] или $_COOKIE["user"].
Примечание. При отправке файла cookie значение файла cookie автоматически кодируется в URL-адресе. Декодирование URL-адресов выполняется автоматически при получении. Если вам это не нужно, вы можете вместо этого использовать setrawcookie().
Установите и отправьте файлы cookie:
<?php$value = "мое значение файла cookie";// отправляем простой файл cookieetcookie("TestCookie",$value);?><html><body>......
<?php$value = "мое значение файла cookie";// отправляем файл cookie, срок действия которого истекает через 24 часаsetcookie("TestCookie",$value, time()+3600*24);?><html><body>... ...
Различные способы получения значения файла cookie (после установки файла cookie):
<html><body><?php// Распечатать отдельные файлы cookieecho $_COOKIE["TestCookie"];echo "<br />";echo $HTTP_COOKIE_VARS["TestCookie"];echo "<br />";// Распечатать все файлы cookieprint_r($_COOKIE);?></body></html>
Приведенный выше код выведет:
значение моего файла cookieмое значение файла cookieArray ([TestCookie] => значение моего файла cookie)
Удалите файл cookie, установив дату истечения срока действия на дату/время в прошлом:
<?php// Установите дату истечения срока действия на один час назадsetcookie ("TestCookie", "", time() - 3600);?><html><body>......
Создайте массив файлов cookie:
<?phpsetcookie("cookie[three]","cookiethree");setcookie("cookie[two]","cookietwo");setcookie("cookie[one]","cookieone");// распечатываем файлы cookie (после перезагрузка страницы)if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "$name : $value <br />"; }?><html><body>......
Приведенный выше код выведет:
три: cookiethreetwo: cookietwoone: cookieone