<?
session_start();
if (isset($HTTP_SESSION_VARS[’valid_user’]))
{
echo ‘Здравствуйте,’.$HTTP_SESSION_VARS[’valid_user’].’<br />;
echo(«Информация на этой странице доступна только для зарегистрированных пользователей <br>»);
}
else
{
echo(«Вы не зарегистрированы <br>»);
}
echo '<a href =»auth.php»>Haзад на страницу регистрации </а>';
?>
При переходе посетителя по ссылке «Выход», реализуется скрипт destroy.php, по которому осуществляется разрегистрация сеансовых переменных и завершение сеанса.
Листинг destroy.php. Код скрипта для завершения сеанса и разрегистрации сеансовых переменных
<?
session_start();
$old_user = $HTTP_SESSION_VARS[’valid_user’];
unset($HTTP_SESSION_VARS[’valid_user’]);
session_destroy();
?>
<html>
<body>
<h1>Выход</h1>
<a href=»auth.php»>Haзад на страницу регистрации</а>;
</body>
</html>
5. ЗАДАНИЕ НА САМОСТОЯТЕЛЬНУЮ РАЗРАБОТКУ
Создать HTML-документ с формой, использующей все типы описанных полей. А затем написать сценарий, который будет обрабатывать переданные параметры, и хранить информацию о данных регистрации пользователя в базе данных MySQL.
В окне браузера форма должна выглядеть примерно так:
Когда пользователь нажмет кнопку Передать, браузер передаст сценарию следующие параметры:
● txt — значение текстового поля;
● pswd — значения поля ввода пароля;
● hid — значение скрытого поля;
● параметры varl и var2 будут переданы только, если соответствующие им переключатели активны (может быть передано одно из значений, оба значения или же ни одно из значений);
● sex — значение группы зависимых переключателей (будет передано одно из значений — male или female);
● t_area — содержимое текстовой области;
● month — значение списка без возможности множественного выбора;
● month [] — значение списка с возможностью множественного выбора.
Теперь нужно разобраться, как обработать все эти параметры.
● Параметры txt, pswd, hid и t_area обрабатываются легко. Интерпретатор создает для каждого параметра переменную с соответствующим именем.
● С параметрами varl и var2 дело обстоит несколько сложнее. Если переключатель не активен, то параметры вообще не будут переданы на сервер, как будто бы вообще их и не было. Следовательно, не будет создана глобальная переменная и при попытке обращения к такой переменной, мы получим сообщение о том, что переменная не существует. Поэтому просто написать echo $varl; мы не можем: нужно предварительно проверить, существует ли переменная.
Только после проверки существования можно начинать работу с переменной.
● Параметр sex, то есть зависимый переключатель, обрабатывается легко — браузер передает только одно из значений. Другими словами, параметр sex будет равен или male, или female.
● Точно также обрабатывается параметр $month — это обыкновенный список без возможности множественного выбора, поэтому по сути его можно представить, как набор из зависимых переключателей.
● Сложнее всего обработать список с множественным выбором. Ведь в этом случае параметры передаются так:
name=valuel&name=value2&name=value3...
При стандартном подходе переменная $name будет содержать только последнее значение (valueN). Однако разработчики РНР позаботились об этом: множественный список можно представить в виде массива, а обработать его элементы можно с помощью цикла foreach. Нам даже не нужно знать количество переданных элементов списка. Предварительно лишь нужно сообщить РНР, что мы будем передавать массив:
<select name”month2[]”size=4 multiple>
Квадратные скобки — это признак массива.
На примерах рассмотрено, как РНР обрабатывает данные, пришедшие из формы, из командной строки или из cookies. Мы также узнали различные способы записи полей формы для того, чтобы формировать в программе переменные и массивы требуемой структуры (например, массивы для элемента «список с множественным выбором»). Описан режим register_giobals, популярный в ранних версиях РНР, а ныне отключенный из соображений безопасности, а также его достоинства и недостатки.
ЛИТЕРАТУРА
1. Скляр Д., Трахтенберг А. PHP. Сборник рецептов. – Пер. с англ. – СПб: Символ – Плюс, 2005. – 627 с., ил.
2. Котеров Д., Костарев А. PHP5 в подлиннике. – СПб: Символ – Плюс, 2005. – 1120 с., ил.
3. Дюбуа П. MySQL. Сборник рецептов. – Пер. с англ. - СПб: Символ – Плюс, 2004. – 1056 с., ил.
4. Томсон Лаура, Веллинг Люк. Разработка web – приложений на PHP и MySQL. – Пер. с англ. – СПб: ООО «ДиаСофтЮП», 2003. 672 с., ил.