Учебники

PHP — методы GET & POST

Клиент браузера может отправлять информацию на веб-сервер двумя способами.

  • Метод 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 содержит имя собственного скрипта, в котором он вызывается.

Это даст следующий результат —