|
|||||||||||||||||||
|
|
||||||||||||||||||
Что такое cookies? Проблема разрешилась с внедрением механизма cookies (то есть, в переводе с английского, - "печенье"). Cookies обладают замечательным свойством - они сохраняются на винчестере пользователя и могут храниться там практически неограниченное время. По своей сути cookies - это обычные текстовые файлы, хранящиеся в специальной директории, используемой броузером (обычно эта папка называется Temporary Internet Files), и вы можете увидеть их, зайдя в эту директорию (быстрый доступ к ней для броузера IE осуществляется через пункты меню Сервис -> Свойства обозревателя -> Временные файлы Интернета -> Настройка -> Просмотр файлов). Реализация механизма cookies в PHP. Функция имеет следующий синтаксис: setcookie(имя куки, значение, срок годности, информация о пути, домен, защищенность) Все параметры, кроме имени cookie, являются необязательными. Если cookie посылается только с этим параметром, то она сразу же уничтожается удаленным клиентом, поэтому сам по себе этот параметр не несет информационной нагрузки. Полнофункциональной cookie делают два следующих параметра: значение, заложенное в куке, и время, до которого эта cookie может быть использована. Значением, которое несет cookie, может быть любая строка ASCII символов. Например, можно установить cookie с именем и фамилией посетителя, которые он до этого ввел в поле формы. $data = $name."||".$surname; Заметьте, что отсылаемые данные должны быть оформлены в виде строки, попытка прочитать отосланный ранее массив значений ни к чему не приведет. Cookie, установленная в вышеуказанном примере, будет уничтожена сразу после закрытия броузера пользователем, так как по умолчанию срок жизни cookie устанавливается в ноль. Чтобы изменить этот порядок, необходимо указать третий параметр expire. Определение этого параметра можно произвести двуми способами: Задать отностительный срок действия с помощью функции time(), к которой прибавляется время в секундах для хранения cookie. Например, чтобы определить cookie на два часа необходимо написать: Второй способ - задание абсолютного срока истечения годности cookie. Он устанавливается с помощью функции mktime(), которая возвращает конкретную дату удаления куки. Если необходимо задать срок жизни cookie до полуночи 1 сентября 2003 года, то следует определить cookie так: Необязательный параметр пути ограничивает область действия cookie в пределах определенных директорий. Причем в эту область входят все пути, начинающиеся со значения в этом параметре. Например: setcookie("test 3, "", 0, "/mus"); Мы установили куку, пропустив параметры значения и времени и определив область действия всеми путями, начинающимися со строки "/mus", то есть сюда входят и директория "/music/", и "/museums/". Чтобы однозначно определить путь, необходимо завершить путь слешем. То есть для ограничения действия куки каталогом "/mus", необходимо было написать в параметре "/mus/". Следующим опциональным параметром является параметр определения действия cookie в пределах указанного домена. Причем значению этого параметра "someserver.com" соответствует только сайт с адресом http://someserver.com, а значению ".someserver.com" соответствуют уже и http://someserver.com, и http://mail.someserver.com, и http://my-someserver.com, то есть все домены, кончающиеся данной строкой. Последний параметр функции setcookie() указывает на то, что данная cookie должна быть послана через защищенное соединение (HTTPS). Этот параметр необходим при установке cookie с конфеденциальными данными. setcookie("my_cookie", $value, time() + 3600 * 24 * 5, "/", ".myphp.dem.ru", 1); Чтение cookie. echo "У вас сохранены следующие данные: Обращение к данным, сохраненным в cookie, также может происходить через массив $HTTP_COOKIE_VARS. Он схож с другими подобными массивами, такими как $HTTP_POST_VARS и другими, и содержит все значения, прочтенные из cookie. Удаление cookie. Например: $data = $my_cookie; На этом закончим сегодняшний урок. До встречи. |
|||||||||||||||||||
|