COOKIES
Cookies - это текстовые строки, хранящиеся на стороне клиента, и содержащие пары "имя-значение", с которыми связан URL, по которому браузер определяет нужно ли посылать cookies на сервер.
Установка cookies производится с помощью функции setcookie:
bool setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]]),
где name - имя устанавливаемого cookie;
value - значение, хранящееся в cookie с именем $name;
expire - время в секундах с начала эпохи, по истечение которого текущий cookie становится недейтвительным;
path - путь, по которому доступен cookie;
domain - домен, из которого доступен cookie;
secure - директива, определяющая, доступен ли cookie не по запросу HTPPS. По умолчанию эта директива имеет значение 0, что означает возможность доступа к cookie по обычному запросу HTTP.
// подсчет при помощи cookies количество обращений посетителя к странице.
<?
$counter++;
setcookie("counter",$counter);
echo("Вы посетили эту страницу $counter раз");
?>
Результат выполнения сценария количество посещений данной страницы.
При работе с cookies необходимо учитывать, что cookie надо обязательно устанавливать перед отправкой в браузер каких-либо заголовков, поскольку сами cookies устанавливаются в виде заголовков. Поэтому если установить cookies после какого-либо текста, отправляемого в браузер, то возникнет ошибочная ситуация.
//текст перед установкой cookie
<?
$counter++;
echo("Вы посетили эту страницу ”);
setcookie("counter",$counter);
echo(" $counter раз");
?>
При выполнении этого сценария выводится сообщение об ошибке, т.к. перед установкой cookie находился текст.
Значение, хранящееся в cookie можно получить через глобальный массив $_COOKIE["name"]:
<?
$_COOKIE['counter']++;
setcookie("counter",$_COOKIE['counter']);
echo 'Вы посетили эту страницу '.$_COOKIE['counter'].' раз';
?>
Т.к. некоторые пользователи отключают cookie в настройках своих браузеров, для корректной работы, в приложение, использующее cookies, необходимо помещать код, проверяющий включены ли cookies у посетителя, и, если нет, то сообщающий ему о необходимости включить cookie:
<?
if(!$cookie)
{
/* посылаем заголовок переадресации на страницу,
с которой будет предпринята попытка установить cookie */
header("Location: $PHP_SELF?cookie=1");
/* устанавливаем cookie с именем "test" */
setcookie("test","1");
}
else
{
if(!$test)
{
echo("Для корректной работы приложения необходимо включить cookies");
}
else
{
/* cookie включены, переходим на нужную страницу */
header("Location: http://localhost/test1.php");
}
}
?>
Дата добавления: 2015-08-26; просмотров: 727;