|
|
Передача переменных в скрипт.
Чаще всего серверные скрипты используются для обработки результатов заполнения форм. Например, в гостевой книге пользователь вводит данные в форму, которая затем обрабатывается на сервере. Отвечая на какой-либо опрос пользователь, аналогично, устанавливает значение определенных полей формы. Напомню, какие тэги и атрибуты должна содержать форма: <FORM NAME="имя_формы" ACTION="путь_к_обработчику" METHOD="метод_передачи_переменных"> поля ввода... </FORM> Цветом выделены те элементы, которые пригодятся нам в этом опыте. Прежде всего разберемся, что такое "обработчик". Это скрипт на сервере, в который будут переданы значения полей ввода. Каждое поле ввода имеет атрибут NAME, которое будет передано в обработчик вместе со своим значением. Существует два метода передачи данных: GET и POST. Их отличие состоит в том, что при использовании метода GET значения полей присоединяются к URL, указанному в атрибуте ACTION. Происходит это таким образом:
http://site.domain/action.php3?имя=значение&...имя=значение Пары "имя=значение" создаются для каждого элемента ввода, для которого указано имя атрибутом NAME. В случае использования метода POST значения полей передаются в заголовке запроса к серверу. Формат передачи при этом методе нам, вобщем-то, не интересен. Просто примем к сведению, что значения передаются "незаметно" для обычного пользователя. Теперь приступим непосредственно к рассмотрению темы опыта. При исполнении скрипта на языке PHP (напомню, что я рассматриваю именно этот язык так как он мне наиболее симпатичен) создаются переменные с именами, соответствующими именам полей и содержащие соответствующие значения. Предположим, что мы создали форму следующего вида: <FORM ACTION="mult.php3" METHOD="GET"> <INPUT TYPE="text" NAME="first" SIZE="4" MAXLENGTH="4"> <INPUT TYPE="text" NAME="second" SIZE="4" MAXLENGTH="4"> <INPUT TYPE="Submit" VALUE="Умножить"> </FORM> Скрипт, содержащийся в файле mult.php3 может выглядеть следующим образом: <?php Header("Content-type: text/html"); echo "$first умножить на $second получится ", $first*$second; ?> Как видим, все довольно просто. Результат работы такой формы можно увидеть, заполнив поля в форме справа. Необходимо напомнить, что существует специальный тип поля HIDDEN. Это поле, которое не выводится на экран, но, если ему присвоено имя атрибутом NAME, значение его передается в форму. Это бывает полезно, например, когда один обработчик может производить не одно, а несколько действий. С помощью такого поля мы мы можем задать тип действия, которое мы хотим произвести с данными формы. На сегодня все. В следующий раз рассмотрим как передаются значения различных элементов, которые используются в формах. |