Главная
домен в подарок! подробнее

каталог сайтов www.poiu.ru закрыт. копия сайта www.myphp.net.ru сделана мной без согласия автора, подробнее тут


setcookie

(PHP 3, PHP 4 >= 4.0.0)

setcookie -- Посылает cookie

Описание

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

setcookie() определяет cookie, посылаемую наряду с другой информации в HTML заголовке. Cookies должны быть посланы до отправления других заголовков (это особенность cookies, а не PHP). Поэтому эта функция должна быть вызвана до каких-либо тегов.

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

Особенности:

  • Cookies не станут "видимыми" до загрузки следующей страницы, считывающей значение этих  cookie.

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

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

Несколько примеров, чтобы показать установку cookie:

Пример 1. setcookie()

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

Примеры, показывающие, как удалять cookies (вытекают из предыдущего примера):

Example 2. setcookie() delete examples

setcookie ("TestCookie");
// set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600,
 "/~rasmus/", ".utoronto.ca", 1);
Когда вы удаляете cookie, вы должны быть уверены, что срок действия указывает на прошедшее время. Это необходимо для запуска механизма удаления данной cookie в броузере пользователя.

Заметьте, что в момент передачи cookie часть её значения будет автоматически закодировано, а в момент приема оно будет автоматически раскодировано и имя cookie будет назначено переменной. Чтобы убедиться в этом, используйте следующий пример:

echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];

Вы также можете посылать массив cookies, используя указание массива в имени cookie. Это подобно эффекту установки множества cookies, но когда скрипт принимает такую cookie, её значения будут помещены в массив с именем cookie:

setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
if (isset ($cookie)) {
    while (list ($name, $value) = each ($cookie)) {
        echo "$name == $value
\n";
    }
}

<-Назад

Список всех функций

Если вы заметили ошибку, неточность, либо хотите опубликовть свой перевод неуказанных в разделе функций, пожалуйста, напишите по этому адресу.