«Интеллектуальные» возможности РНР на этом далеко не исчерпываются. Дело в том, что в переменные преобразуются не только все данные формы, но и переменные окружения (включая query_string, content_length и многие другие).
Например, приведем сценарий (листинг 5), печатающий IP-адрес пользователя, который его запустил, а также тип его браузера (эти данные хранятся в переменных окружения remote_ u ser и http_ u ser_agent, доступных в скрипте через массив $_server).
Листинг ip.php. Вывод IP-адреса из браузера пользователя
<! - - Вывод IP-адреса и браузера пользователя - ->
Ваш IP- адрес : <?=$_SERVER[’REMOTE_ADDR’]?><br>
Ваш браузер : <?=$_SERVER[’HTTP_USER_AGENT’]?>
Работа с cookies
Использование cookies удобно как для программистов, так и для пользователей. Пользователям не приходится каждым раз заново вводить информацию о себе, а программистам cookies помогают легко и надежно сохранять информацию о пользователях.
Cookies — это файлы, хранящие строки, содержащие пары «имя-значение». С этими строками связан URL, по которому браузер определяет, нужно ли посылать cookies на сервер. В отличие от сеансовых переменных, которые хранятся на сервере, cookies расположены на клиентской машине.
Установка cookies
Установка cookies производится с помощью функции setcookie:
bool setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Эта функция имеет следующие аргументы:
name — имя cookie;
value — значение, хранящееся в copkie с именем name;
expire — время в секундах с 1 января 1970 года. По истечении этого времени cookie становится недействительным;
path — путь, по которому доступен cookie;
domain — домен, из которого доступен cookie;
secure — директива, определяющая, доступен ли cookie не по запросу HTTPS (HyperText Transmission Protocol, Secure — протокол защищенной передачи гипертекстов). По умолчанию эта директива имеет значение 0, что означает возможность доступа к cookie по обычному запросу HTTP.
Пример приложения с cookies
Создадим сценарий, подсчитывающий при помощи cookies количество обращений посетителя к странице. Необходимо устанавливать cookie перед отправкой в браузер каких-либо заголовков, поскольку сами cookies устанавливаются в виде заголовков. Потому, если установить cookies после какого-либо текста, отправляемого в браузер, то возникнет ошибочная ситуация.
Заметим, что в листинге мы обращаемся к переменной $ counter, в которой хранится значение cookie, как к глобальной, что требует наличия включенной директивы register globais. Если эта директива отключена, то значение, хранящееся в cookie, можно получить через глобальные массивы $ HTTP _ COOKIE VARS [» name »] и $_ COOKIE [» name »].
Листинг cookie . php . В cookie с именем counter храниться число посещений страницы пользователем ( register globais = off )
<?
$_ СООК I Е [’counter’]++;
setcookie(“counter”,$counter);
echo 'Вы посетили эту страницу: '.$_COOKIE['counter'].' раз.';
?>
В окне браузера выглядит следующим образом:
Некоторые пользователи отключают cookies в своих браузерах. Поэтому для корректной работы приложения, использующего cookies, в него следует помещать код, проверяющий, включены ли cookies у посетителя. Если нет, то пользователю сообщается о необходимости включить cookies .
Листинг cookie_pr. Пример кода проверяющего включение cookie
<?
if (!$ cookie )
{
//посылаем заголовок переадресации на страницу,
//с которой будет предпринята попытка установить cookie
header(“Location: $PHP_SELF?cookie=l”);
// устанавливаем cookie с именем « test »
setcookie(“test”,”1”);
}
Else
{
if (!$test)
{
echo («Для корректной работы приложения необходимо включить cookies »);
}
Else
{
// cookie включены, переходим на нужную страницу
header(“Location: http://localhost/testl.php “);
}
}
?>
Функцию setcookie () всего лишь посылает в браузер пользователя cookie с указанным именем и значением.
Дата: 2019-04-23, просмотров: 225.