Клиент браузера может отправлять информацию на веб-сервер двумя способами.
- Метод GET
- Метод POST
Прежде чем браузер отправляет информацию, он кодирует ее с помощью схемы, называемой URL-кодированием. В этой схеме пары имя / значение объединяются знаком равенства, а разные пары разделяются амперсандом.
name1=value1&name2=value2&name3=value3
Пробелы удаляются и заменяются символом +, а любые другие не буквенно-цифровые символы заменяются шестнадцатеричными значениями. После того, как информация закодирована, она отправляется на сервер.
Метод GET
Метод GET отправляет закодированную информацию пользователя, добавленную к запросу страницы. Страница и закодированная информация разделены знаком ? персонаж.
http://www.test.com/index.htm?name1=value1&name2=value2
-
Метод GET создает длинную строку, которая появляется в журналах вашего сервера, в окне браузера Location:.
-
Метод GET ограничен отправкой до 1024 символов.
-
Никогда не используйте метод GET, если у вас есть пароль или другая конфиденциальная информация для отправки на сервер.
-
GET нельзя использовать для отправки двоичных данных, таких как изображения или текстовые документы, на сервер.
-
Доступ к данным, отправленным методом GET, можно получить с помощью переменной среды QUERY_STRING.
-
PHP предоставляет ассоциативный массив $ _GET для доступа ко всей отправленной информации, используя метод GET.
Метод GET создает длинную строку, которая появляется в журналах вашего сервера, в окне браузера Location:.
Метод GET ограничен отправкой до 1024 символов.
Никогда не используйте метод GET, если у вас есть пароль или другая конфиденциальная информация для отправки на сервер.
GET нельзя использовать для отправки двоичных данных, таких как изображения или текстовые документы, на сервер.
Доступ к данным, отправленным методом GET, можно получить с помощью переменной среды QUERY_STRING.
PHP предоставляет ассоциативный массив $ _GET для доступа ко всей отправленной информации, используя метод GET.
Попробуйте следующий пример, поместив исходный код в скрипт test.php.
<?php if( $_GET["name"] || $_GET["age"] ) { echo "Welcome ". $_GET['name']. "<br />"; echo "You are ". $_GET['age']. " years old."; exit(); } ?> <html> <body> <form action = "<?php $_PHP_SELF ?>" method = "GET"> Name: <input type = "text" name = "name" /> Age: <input type = "text" name = "age" /> <input type = "submit" /> </form> </body> </html>
Это даст следующий результат —
Метод POST
Метод POST передает информацию через заголовки HTTP. Информация кодируется, как описано в случае метода GET, и помещается в заголовок с именем QUERY_STRING.
-
Метод POST не имеет каких-либо ограничений на размер отправляемых данных.
-
Метод POST может использоваться для отправки ASCII, а также двоичных данных.
-
Данные, отправляемые методом POST, проходят через заголовок HTTP, поэтому безопасность зависит от протокола HTTP. Используя безопасный HTTP, вы можете быть уверены, что ваша информация в безопасности.
-
PHP предоставляет ассоциативный массив $ _POST для доступа ко всей отправленной информации, используя метод POST.
Метод POST не имеет каких-либо ограничений на размер отправляемых данных.
Метод POST может использоваться для отправки ASCII, а также двоичных данных.
Данные, отправляемые методом POST, проходят через заголовок HTTP, поэтому безопасность зависит от протокола HTTP. Используя безопасный HTTP, вы можете быть уверены, что ваша информация в безопасности.
PHP предоставляет ассоциативный массив $ _POST для доступа ко всей отправленной информации, используя метод POST.
Попробуйте следующий пример, поместив исходный код в скрипт test.php.
<?php if( $_POST["name"] || $_POST["age"] ) { if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) { die ("invalid name and name should be alpha"); } echo "Welcome ". $_POST['name']. "<br />"; echo "You are ". $_POST['age']. " years old."; exit(); } ?> <html> <body> <form action = "<?php $_PHP_SELF ?>" method = "POST"> Name: <input type = "text" name = "name" /> Age: <input type = "text" name = "age" /> <input type = "submit" /> </form> </body> </html>
Это даст следующий результат —
Переменная $ _REQUEST
Переменная PHP $ _REQUEST содержит содержимое как $ _GET, $ _POST, так и $ _COOKIE. Мы обсудим переменную $ _COOKIE, когда расскажем о файлах cookie.
Переменная PHP $ _REQUEST может использоваться для получения результата от данных формы, отправленных с помощью методов GET и POST.
Попробуйте следующий пример, поместив исходный код в скрипт test.php.
<?php if( $_REQUEST["name"] || $_REQUEST["age"] ) { echo "Welcome ". $_REQUEST['name']. "<br />"; echo "You are ". $_REQUEST['age']. " years old."; exit(); } ?> <html> <body> <form action = "<?php $_PHP_SELF ?>" method = "POST"> Name: <input type = "text" name = "name" /> Age: <input type = "text" name = "age" /> <input type = "submit" /> </form> </body> </html>
Здесь переменная $ _PHP_SELF содержит имя собственного скрипта, в котором он вызывается.
Это даст следующий результат —