Трансляция переменных окружения — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Трансляция переменных окружения

2020-03-31 133
Трансляция переменных окружения 0.00 из 5.00 0 оценок
Заказать работу

«Интеллектуальные» возможности РНР на этом далеко не исчерпываются. Дело в том, что в переменные преобразуются не только все данные формы, но и переменные окружения (включая 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 с указанным именем и значением.

 


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.