Рассказ о формах был бы не полным, если не затронуть вопрос, что же делать
с данными дальше, после того, как они введены пользователем и отправлены на
сервер. Там информация уже анализируется и сохраняется в случае необходимости.
Централизованное хранение данных на сервере, например в базе данных, позволяет
организовывать множество интересных вещей — от обычных опросов до сложных
форумов.
В качестве обработчика формы может выступать любой серверный язык программирования —
Perl, Си, Python, PHP и т.д. В дальнейшем рассмотрим манипуляции с данными формы
при помощи PHP, как одном из наиболее популярных и доступных языков.
Использование глобальных переменных
Каждому элементу формы, у которого есть уникальное имя, заданное параметром
name, сопоставлена переменная с тем же именем (со
знаком доллара впереди). Так, в примере 18.1 показано создание формы с
текстовым полем username. Поскольку для тега <FORM>
не указано значение параметра action, данные формы будут отправлены
на эту же самую страницу. Код PHP проверяет, установлено ли какое-либо значение
у переменной $username и если да, то выводит его
в окне браузера.
Пример 18.1. Использование глобальных переменных
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Глобальные переменные</title>
</head>
<body>
<?php
// Функция isset проверяет, присвоено ли переменной $username какое-либо значение
if (isset($username)) {
// Выводим текст
echo "Привет, $username";
}
else {
?>
<form action="">
<p><b>Введите ваше имя:</b><br>
<input type="text" name="username"></p>
<p><input type="submit" value="Отправить">
</form>
<?php
}
?>
</body>
</html>
В данном примере вначале идет проверка на существование значения переменной
$username с помощью функции isset.
Если какое-либо значение присвоено, оно будет выведено, в противном случае отображается
форма, где требуется ввести имя пользователя.
Замечание
В настройках PHP (файл php.ini) можно
запретить работу с глобальными переменными (register_globals
= Off), в таком случае указанный пример не будет работать должным образом.
Желательно вообще обходиться без глобальных переменных, что делается обычно
в целях безопасности.
Массивы $_GET и $_POST
Существуют массивы для хранения данных, переданных через метод GET
или POST — соответственно, $_GET и $_POST.
Принцип работы с этими массивами достаточно прост. Если в форме используется
метод GET, то для получения значения элемента формы достаточно указать $_GET["имя
поля"], где имя определяется параметром name.
В примере 18.2 показано использование массива $_POST
для получения данных формы.