ROBOWEB : Документация : Как программа PHP обрабатывает методы данных GET и POST : html, perl, cgi, php, css, 3dmax - 3D Studio русская документация с примерами программ, RTFM и описание протоколов, описание dreamweaver, все для вебдизайнера
Разработка сайтов, web дизайн - Центр Русского Дизайна HOD.RU
FLASH
3D Studio MAX
DreamWeawer FAQ
Изучение HTML
META тэги
CSS
Руководство по стилям
Спецификация WML (WAP)
Язык DHTML
Спецификация XML
Руководство по Java
Документация по JavaScript
Язык HOD Text Processor
Интерфейс CGI
Документация по Perl 5
Perl FAQ
Документация по PHP
PHP/FI 2.0
Документация по SQL
Базы данных
Доступ к БД

Рейтинг@Mail.ru Rambler's Top100

Веб дизайнеру
Каталог сайтов Axes.ru


Как программа PHP обрабатывает методы данных GET и POST

PHP обнаруживает оба метода GET и POST , исходящие из HTML формы. Одна важная деталь, для понимания - это то что метод, POST всегда обрабатывается раньше, если присутствуют оба из них. Если переменная PHP определяется методом POST, или если переменная определена дэймоном HTTP в среде окружения Unix, то метод GET не может перезаписать ее. Это должно предотвратить ситуацию когда кто-либо добавит строку ?REMOTE_HOST=some.bogus.host к его URL и таким образом, подчунуть механизму регистрации PHP, эти альтернативные данные. Однако POST методу, разрешено перезаписывать эти переменные.

Любая компонента данных GET (данные после '?' в URL) которая имеет форму, word=something, определит переменную $word, содержащую значение something. Даже если данные не определены в этой форме, к ним все равно можно обратиться через массив $argv. Например, в URL подобно:

/cgi-bin/php.cgi/file.html?abc+def+EMAIL_ADDR=rasmus@vex.net&var==value

Соответствующие компоненты таблицы идентификаторов PHP будут:

$argc       = 4
$argv[0]    = abc
$argv[1]    = def
$argv[2]    = EMAIL_ADDR=rasmus@vex.net&var==value $EMAIL_ADDR = rasmus@vex.net
$var        = value

Обратите внимание, как EMAIL_ADDR часть данных присутствует и в переменной $argv [2], в которой она не анализируется, и создается переменная $EMAIL_ADDR, содержащая значение rasmus@vex.net.

$EMAIL_ADDR переменная использовалась в вышеупомянутом примере, потому что это - полезная переменная, если Вы используете особенности регистрации PHP. Добавляя:

?EMAIL_ADDR=

К любым линкам на странице, где известен email адрес пользователя, Вы можете передавать это значение следующей странице. Система регистрации PHP, будет автоматически просматривать значение этой переменной и записывать его в качестве адреса электронной почты пользователя в файлах регистрации. Для любых пользователей PHP, вышеупомянутое выполняет ту же самую функцию что и добавление ?<!--$email--> к используемому URL. Это выглядит немного сложным сейчас, но сложным является и решение самому сформировать свою собственную страницу.

В вышеприведенном примере Вы также видели, как несколько переменных в методе GET могут быть правильно определены, отделением их друг от друга символом "&". Этот список переменных, разделенный символом "&" должен быть последней (или единственной) компонентой метода GET.

SELECT MULTIPLE и PHP

Тэг SELECT MULTIPLE в конструкции HTML позволяет пользователям сделать множественный выбор из списка. Выбранные объекты впоследствии передаются обработчику формы. Проблема состоит в том, что все они будут переданы с одним и тем же именем объекта. То есть.

<SELECT NAME="var" MULTIPLE>

Каждая выбранная опция будет передана обработчику формы в виде:

var=option1
var=option2
var=option3

Каждая опция затрет предыдущее содержимое переменной $var. Решение состоит в том, чтобы использовать особенность PHP/FI - не-индексированные массивы. Так нужно использовать:

<SELECT NAME="var[]" MULTIPLE>

Это сообщает PHP/FI, чтобы он обработывал переменную varкак массив, каждое присвоение значения переменной var[] добавляет элемент к массиву. Первый элемент становится $var[0], следующий $var[1], и т.д. Для опеределения количества выбранных элементов может использоваться функция count(), и в случае необходимости функция sort() для сортировки массива.


IMAGE SUBMIT и PHP

При передаче формы на рассмотрение, можно использовать картинку, вместо стандартного представления кнопки. Это можно сделать, указав тэг:

<input type=image src=image.gif name=sub>

Когда пользователь нажимает где-нибудь на изображение, сопровождающая форма будет передана серверу с двумя дополнительными переменными, sub_x и sub_y. Они содержат координаты точки внутри изображения, на которой пользователь щелкнул мышью. Опытный может обратить внимание, что фактические имена переменных , посланных броузером содержат точку вместо подчеркивания, но PHP автоматически преобразовывает точку в подчеркивание.

[Назад] [Содержание] [Вперед]