Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.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 автоматически преобразовывает точку в подчеркивание.


[ Назад | Оглавление | Далее ]









helloworld.ru © 2001-2021
Все права защищены