Основы
Работа с формами
Значения переменных можно передавать между различными страницами сайта – с помощью использования форм. Формой называется конструкция, состоящая из поименованных элементов особых типов, заключенных между HTML-тэгами <form…></form>. В качестве элементов формы могут выступать поля ввода текста, кнопки, выпадающие меню, переключатели, квадратики для отметки галочкой – checkbox'ы, а также картинки формата jpg или gif. Каждый элемент формы может иметь свое имя.
Наиболее важным свойством формы является то, что в ее заголовке в открывающем тэге <form…> можно указать адрес какого-либо файла. В этом случае при загрузке этого файла в программный код, если он будет там присутствовать, передадутся значения всех переменных, установленных в этой форме, в частности, значения всех элементов формы, как если бы эти значения были установлены в программе, расположенной в самом загружаемом файле. Таким образом можно передавать значения переменных между различными web-страницами, используя их в программном коде.
Во всех версиях РНР имена передаваемых переменных соответствуют тем именам, которые были даны элементам формы в их тэгах, а значения – соответственно значениям этих элементов (если в конфигурационном файле РНР – php.ini – параметр register_globals установлен в on): для поля ввода текста – введенному тексту, для переключателя или checkbox'a – True при отмеченном и False при неотмеченном, для рисунка – координаты указателя мыши относительно верхнего левого угла изображения, для выпадающего меню (элемент <select name="имя"><орtion value="text">text</option>…</select>) – значение параметра value выбранного пункта option.
Кроме того, переменные, передаваемые через форму, помещаются в ассоциативные массивы $HTTP_POST_VARS и $HTTP_GET_VARS (если в конфигурационном файле РНР – php.ini – параметр track_vars установлен в on) с именами элементов, соответствующими именам переменных (т. е. содержимое поля ввода текста <input type=text name=qwerty size=30> окажется в элементе $HTTP_POST_VARS['qwerty']). SHTTPPOSTVARS содержит переменные, переданные с помощью метода POST (метод указывается в заголовке формы), а $HTTP_GET_VARS – метода GET. Различие между методами состоит в том, что при передаче данных методом GET эти данные отображаются в адресной строке браузера, а при использовании метода POST – нет.
Начиная с РНР версии 4.1, передаваемые через форму переменные помещаются еще и в массивы SPOST и SGET. Отличие этих массивов от предыдущих состоит в том, что их переменные доступны еще и во всех функциях, расположенных в программе РНР, т. е. они являются глобальными.