ДОСТИГНУТО:

01.11.2016-300 страниц в индексе Google;
19.01.2017-300 страниц в индексе Яндекса;
03.02.2017-40 ТИЦ;
05.02.2017- сайт принят в DMOZ каталог;

Методы передачи данных GET и POST

наклейки на заказ .

get-i-postМетоды передачи данных GET и POST

Всем привет!

Часто скрипты написанные на PHP требуют вмешательства пользователя, когда необходимо передать какие либо данные. Протокол HTTP позволяет нам это сделать посредством передачи GET и POSTзапросов серверу. И в PHP есть поддержка этих методов передачи.

Метод GET

При использовании метода GET, данные передаются путем добавления их к URL-адресу вызываемого сценария, предназначенного для обработки полученной информации. Например:

В этом случае мы передаем параметр num равный 10. Для добавления следующих параметров сценарию нужно использовать разделитель – амперсант (&), например:

Для получения этих параметров в скрипте нужно использовать встроенный массив $_GET. Ключами этого массива будут названия параметров. В нашем случае нужно использовать $_GET["num"] и $_GET["text"]. Чтобы не набирать такой текст в адресной строке браузера используются html-формы. Для примера будем использовать простую html-форму:

 

Вот как выглядит данная форма:
get1
Эта форма будет сама передавать данные в адресной строке. Для тех, кто не знает, сама форма создается тегом form. Поля формы здесь создаются тегами input и textarea. В теге form в атрибуте action указывается URL-адрес скрипта, который получит данные формы. Атрибут method задает метод отправки данных. Мы указали методGET. Теперь взглянем на сам скрипт:

Сразу хочу сказать о функции isset (). Она определяет, установлена ли переменная, то-есть существует она или нет. Если переменная существует, то функция возвращает true, соответственно если переменная не существует, то –false.

Так и в нашем случае. Если $_GET["num"] существует, то выводим число на экран, если же нет, то говорим что данный параметр не был передан (выводим сообщение об ошибке). Аналогично со вторым параметром$_GET["text"].

Таким образом при нажатии кнопки «Отправить», браузер откроет другую страницу (script.php) и в окне браузера отображаются данные, которые вы ввели. Т.е. браузер передаст данные сценарию script.php, и в скрипте эти данные будут обработаны и выведены на экран.

Метод POST

Для отправки данных методом POST используются html-формы. Как я недавно писал, за способ отправки данных формы отвечает атрибут method тега form. Поэтому возьмем ту же форму что и для метода GET и поменяем в ней метод на POST:

 

В файле нашего сценария так же заменять придется не много, так как  для получения данных методом POST используется встроенный массив $_POST. Ключи у этого массива в нашем случае будут такие же как и у массива $_GET$_POST["num"] и $_POST["text"]. И вот таким образом выглядит наш сценарий для метода POST:

 

Ну а теперь если мы запустим нашу форму в браузере, введем данные и нажмем кнопку «Отправить», то мы увидим, что в адресной строке браузера наши данные не появились. Это потому что они были переданы в теле запроса. Это и есть существенное отличие этих двух методов.

Кроме того, в PHP в независимости, каким способом были отправлены данные – методом POST или методом GET – получить данные можно используя массив $_REQUEST.

Теперь сравним методы GET и POST:

  • GET отправляет всю информацию в заголовке запроса, длинна которого ограничена. Если вам нужно отправить какое-то слово на сервер – не проблема, оно будет всего несколько букв. Но что делать, если нужно отправить объемный текст с 2000—3000 символов? Будут проблемы.
  • POST отправляет информацию в теле запроса, который не имеет максимального размера. Вы можете отправлять огромные тексты, файлы, и все будет нормально. Именно поэтому этот метод используется при загрузке изображений.

Какой из методов выбирать зависит от ситуации и желаемого результата.

Несколько слов о плюсах и минусах обоих:

Плюсы GET:

  • Страницу всегда можно сохранить в закладках (СЕО-дружелюбен);
  • Он быстрее POST, так как вся информация находится в заголовках;

Минусы GET:

  • Объем информации, которую можно отправить, ограничен;

Сразу и к плюсам и к минусам можно отнести то, что информация, посылаемая на сервер всегда видна в адресной строке. Так как с одной стороны мы видим что отправляется на сервер, а с другой стороны данные никак не защищены.

Плюсы POST:

  • Можно отправить много информации на сервер, объем неограничен;
  • Отправляемая информация не показывается в адресной строке. Удобно, если нужны красивые URL;

Минусы POST:

  • Медленнее, чем GET, так как анализируются заголовки и тело запроса;
  • Страницы, сгенерированные как результат запроса POST, нельзя добавить в закладки (СЕО-недружелюбен);

Какой из методов использовать решать вам…
БЕРЕГИТЕ СЕБЯ!




лайк

Эти красотки хотят чтобы ты их жестко лайкнул и даже несколько раз твитнул!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *