| Раздел: PHP, MySQL, веб-программирование | Автор: foxweb |
| E-mail: |
Www: http://foxweb.net.ru |
| Просмотров: 1876 | Дата: 13.02.2007 |
Куки (от англ. cookies — домашнее печенье) — небольшой фрагмент служебной информации, помещаемый веб-сервером на компьютер пользователя. Применяется для сохранения данных, специфичных для данного пользователя, и используемых веб-сервером для различных целей, в числе которых:
Про куки начинающие программисты, да и простые пользователи думают, что это вирус, троян, червь, что они остаются в компьютере пользователя и следят за ним... Наверное, вы будете смеяться, но при помощи куков невозможно ничего испортить, удалить, украсть и передать. Они никак не мешают вашей безопасности и не несут в себе ничего, кроме пары десятков байт совершенно безобидной информации. Знали бы вы, сколько гадости приходит в ваш компьютер не через HTTP...
Куки — это ни что иное, как одно из служебных полей заголовка HTTP-протокола. Чтобы установить куки в браузере пользователя, веб-сервер передаёт заголовок формата:
Set-Cookie: name=value; expires=date; path=path; domain=domain_name; secure
В PHP есть встроенные функции для работы с HTTP-заголовками и конкретно с куками.
Первый способ — напрямую передать нужный куки с помощью функции header():
header("Set-Cookie: name=value; expires=date; path=path; domain=domain_name; secure");
Обратите внимание, что в протоколе HTTP сначала должны передаваться заголовки, а потом блок данных. Поэтому функция header() должна вызываться строго до начала любого вывода.
Второй способ — по своему механизму ничем не отличается от первого, но выглядит более удобным. Это функция setcookie(). Формат функции такой:
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )
<?php
$value = 'mydata';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* срок действия 1 час */
setcookie("TestCookie", $value, time()+3600, "/~test/", ".example.com", 1);
?>
Поскольку установка куки — это передача HTTP-заголовка, данную функцию следует вызывать до начала любого вывода в скрипте. Обязательно указывать только имя куки. Чтобы очистить установленный ранее куки, нужно установить пустое значение $value.
При GET- или POST-запросе некой веб-странички (а также любого другого файла), браузер ищет в своем хранилище куки, которые были выставлены этим доменом и помещает их в заголовок запроса. Браузер отсылает cookie серверу в следующем виде:
Cookie: TestCooke=mydata;
Если куков было установлено несколько, все значения должны быть разделены символами: "; " переданные браузером куки сразу становятся доступными в PHP-скрипте через глобальные массивы $_COOKIE и $HTTP_COOKIE_VARS. Вот пример чтения cookie:
<?php
// выводит один известный cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];
// выводит все доступные куки
print_r($_COOKIE);
?>
Ну вот мы с вами и научились записывать и читать cookie.