Пример простого приложения с cookies
Давайте создадим простой сценарий, подсчитывающий при помощи cookies количество обращений посетителя к странице.
В cookie с именем counter будет храниться число посещений страницы пользователем:
<? $counter++; setcookie("counter",$counter); echo("Вы посетили эту страницу $counter раз");?>Результат выполнения сценария на рис.:
При работе с cookies необходимо учитывать важный момент, заключающийся в том, что cookie надо обязательно устанавливать перед отправкой в броузер каких-либо заголовков, поскольку сами cookies устанавливаются в виде заголовков. Поэтому если установить cookies после какого-либо текста, отправляемого в броузер, то возникнет ошибочная ситуация.
Рассмотрим этот вопрос подробнее, для чего модифицируем код, приведенный в листинге, поместив перед установкой cookie текст:
Если здесь поместить текст, то возникнет ошибка, так как будет послан заголовок Content-type: text/html. <? $counter++; setcookie("counter",$counter); echo("Вы посетили эту страницу $counter раз");?>Как видно из рис., при выполнении этого сценария выводится сообщение об ошибке:
Заметим, что в этих листингах мы обращаемся к переменной $counter, в которой хранится значение cookie, как к глобальной, что требует наличия включенной директивы register_globals. Если эта директива отключена, то значение, хранящееся в 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"); } }?>Дата добавления: 2016-03-04; просмотров: 631;