Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 
Функции PHP »»» Функции протокола HTTP

setcookie

(PHP 3, PHP 4, PHP 5)

setcookie - отправляет куки.

Описание

int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setcookie() определяет куку для отправки вместе с остальной header-информацией.Куки обязаны быть отправлены до любых других шапок/headers (это ограничение кук, а не РНР). Это требует, чтобы вы помещали вызовы этой функции перед тэгами <html> или <head>.

Все аргументы, кроме name, являются необязательными.Если имеется только аргумент name, кука с этим именем будет удалена с удалённого клиента.Вы можете также заместить любой аргумент пустой строкой (""), чтобы пропустить этот аргумент.Аргументы expire и secure это целые числа/integer и они не могут быть пропущены с помощью пустой строки. В них используйте нуль (0).Аргумент expire это обычное Unix time integer, возвращаемое функциями time() или mktime().Аргумент secure указывает, что данная кука должна передаваться только через секретное HTTPS-соединение.

После того как куки установлены, доступ к ним может быть получен при загрузке следующей страницы через массив $_COOKIE (который вызывается $HTTP_COOKIE_VARS в версиях PHP до 4.1.0).

Обычные ловушки:

  • Куки будут невидимы до тех пор, пока не будет загружена следующая страница.

  • Куки обязаны быть удалены с теми же параметрами, с которыми были установлены.

В PHP 3 множественные вызовы setcookie() в том же скрипте могут быть выполнены в реверсном порядке. Если вы пытаетесь удалить одну куку до вставки другой, вы должны сделать вставку до удаления. В PHP 4 множественные вызовы setcookie() выполняются в порядке вызова.

Далее идут примеры отправки кук:

Пример 1. Отправка кук функцией setcookie()

setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value,time()+3600);/* период действия - 1 час */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

При удалении куки вы должны убедиться, что дата окончания действия прошла, чтобы переключить механизм в вашем браузере. Далее идут примеры удаления куки, созданной в предыдущем примере:

Пример 2. Удаление куки с помощью setcookie()

// установить дату окончания действия на один час назад
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);

Обратите внимание, что часть value куки будет автоматически urlencoded при отправке куки, и, когда она получена, она автоматически декодируется и присваивается переменной с тем же именем, что и имя куки. Для просмотра содержимого нашей тестовой куки в скрипте просто используйте один из следующих примеров:
echo $TestCookie;
echo $_COOKIE["TestCookie"];

Вы можете также установить куки массива, используя нотацию в имени куки. Это даёт эффект установки стольких кук, сколько элементов в этом массиве, но, когда кука получается скриптом, значения помещаются в массив с именем куки:
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
if (isset ($cookie)) {
while (list ($name, $value) = each ($cookie)) {
echo "$name == $value<br>\n";
}
}

О куках дополнительно см. спецификацию Netscape по адресу: http://www.netscape.com/newsref/std/cookie_spec.html.

Microsoft Internet Explorer 4 с Service Pack 1 некорректно работает с куками, которые имеют установленный параметр path.

Netscape Communicator 4.05 и Microsoft Internet Explorer 3.x обрабатывают куки некорректно, если path и time не установлены.

 
 
 Функции по алфавиту 
   Содержание   
 Функции по категориям 

Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS