Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая по ОргЭВМ.doc
Скачиваний:
14
Добавлен:
17.06.2016
Размер:
2.23 Mб
Скачать

Описание использованного в работе объекта cookies

Cookies - это текстовые строки, хранящиеся на стороне клиента, и содержащие пары "имя-значение", с которыми связан URL, по которому браузер определяет, нужно ли посылать cookies на сервер.

Использование cookies удобно как для программистов, так и для пользователей. Пользователи выигрывают за счет того, что им не приходится каждый раз заново вводить информацию о себе, а программистам cookies помогают легко и надежно сохранять информацию о пользователях.

Установка cookies производится с помощью функции setcookie:

Эта функция имеет следующие аргументы:

  • name - имя устанавливаемого cookie;

  • value - значение, хранящееся в cookie с именем $name;

  • expire - время в секундах с начала эпохи, по истечение которого текущий cookie становится недействительным;

  • path - путь, по которому доступен cookie;

  • domain - домен, из которого доступен cookie;

  • secure - директива, определяющая, доступен ли cookie не по запросу HTPPS. По умолчанию эта директива имеет значение 0, что означает возможность доступа к cookie по обычному запросу HTTP.

Куки являются частью HTTP header'а, поэтому setcookie() обязана вызываться до отправления любого вывода браузеру. Это то же самое ограничение, что и для header().

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

Срок годности устанавливается в секундах относительно начала эпохи. В PHP существуют функции time и mktime для работы с датой и временем, позволяющие переводить текущее время в количество секунд с начала эпохи. Функция time просто переводит текущее системное время в количество секунд, прошедших с начала эпохи:

Синтаксис:

int mktime ([int hour [, int minute [, int second [, int month [, int

day [, int year [, int is_dst]]]]]]])

-1 (По умолчанию. Означает, что свойство не задано);

0 (Временной интервал не приходится на период летнего времени);

1 (Временной интервал приходится на период летнего времени).

Пример, взятый из моей работы – установка куков с именем пароль, значением взятым из таблицы на время до 7 июня 2020 года:

setcookie("password",$_POST['password'],mktime(0,0,0,6,7,2020));

Любая кука, отправляемая с клиента, будет автоматически конвертирована в PHP-переменную точно так же, как GET и POST-данные, в зависимости от переменных конфигурации register_globals и variables_order. Если вы хотите присвоить несколько переменных одной куке, просто добавьте [] в имя куки.

В PHP 4.1.0 и позднее, автоглобальный массив $_COOKIE всегда будет установлен любой кукой, отправленной клиентом.

Удалить cookie просто. Для этого надо вызвать функцию setcookie и передать ей имя того cookie, который подлежит удалению:

setcookie("name");

Другие установленные cookie при этом не удаляются.

Ограничения:

Клиент (браузер) имеет следующие ограничения для cookies:

  • всего может храниться до 300 значений cookies

  • каждый cookie не может превышать 4Кбайт

  • с одного сервера или домена может храниться до 20 значений cookie

Если ограничение 300 или 20 превышается, то удаляется первая по времени запись. При превышении лимита объема в 4Кбайт корректность значения cookie страдает — отрезается кусок записи (с начала этой записи) равный превышению объема.

В случае кэширования документов, например, proxy-сервером, поле Set-cookie HTTP заголовка никогда не кэшируется.

30