Главная > Windows 7 > GET или POST: что выбрать? Использование методов GET и POST Get и post примеры
GET или POST: что выбрать? Использование методов GET и POST Get и post примеры
В этом и следующих разделах будет кратко рассказано о том, как создавать простейшие веб-приложения с использованием PHP. Того, о чем было рассказано в разделе явно недостаточно, чтобы ваше приложение общалось с пользователем и формировало в зависимости от выполненных им действий или введенных им параметров. А чего не хватает? Не хватает знаний о том, как организовать пользовательский ввод данных и передачу этих данных на сервер. Ну а базовые знания о способах программной обработки полученной на сервере информации у вас уже должны быть.
Методы HTTP запросов и их параметры
Любое динамическое веб-приложение формирует ответ пользователю в соответствии с введенными им параметрами или выполненными действиями на стороне клиента. Обращение к серверу чаще всего сводится к двум видам запросов: с использованием метода GET или метода POST. Пару слов о различиях между двумя этими видами запросов.
Метод GET:
Параметры передаются в заголовке HTTP запроса, поэтому видны в командной строке, и такой запрос может быть сохранен в закладках. Поскольку общая длина заголовка ограничена, то и количество и длина параметров, передаваемых с помощью GET также ограничена.
Считается, что результаты нескольких, выполненных подряд одинаковых запросов GET должны быть одними и теми же.
Метод POST:
Параметры запросов передаются в теле HTTP запроса, поэтому в командной строке их нет. Количество и размер параметров неограничен.
Считается, что результаты нескольких идентичных запросов POST могут возвращать различные значения, поскольку могут изменять свойства целевого объекта.
Метод GET следует использовать для извлечения содержимого информационного ресурса согласно параметрам, когда не требуется вносить изменения в структуры данных целевого ресурса, а запрос (URL) имеет смысл сохранять в закладках. Скорость выполнения метода GET может быть выше аналогичных запросов с использованием метода POST.
Метод POST следует использовать, когда необходимо скрыть из URL передаваемые на сервер параметры. Данный метод также следует использовать в запросах на изменения содержимого целевого ресурса, передавая в параметрах (в теле запроса) описание этих самых изменений.
Путь к ресурсу?параметр1=значение1&параметр2=значение2&…
Если у вас нет специальной HTML формы для заполнения параметров, то вы можете отладить работу вашего PHP приложения, передавая тестовые параметры прямо в командной строке браузера, например:
Http://сайт/php-samples/sql.php?sql=select * from d_staff
Для обращения к параметрам запроса на стороне сервера следует использовать глобальные массивы $_GET
и $_POST
соответственно. Если вашему приложению все равно, с использованием какого метода к нему обратились, то следует использовать массив $_REQUEST
, который объединяет в себе данные массивов $_GET и $_POST, например, так:
В этом примере программа определяет, был ли передан параметр “sql”: если да, то присваивает соответствующей переменной его значение, и если нет, то присваивает ей пустое значение.
Определение параметров HTTP запроса через HTML форму
Конечно, определять параметры вручную прямо в командной строке браузера не очень удобно. Такой способ подходит для программного выполнения HTTP запросов при общении веб-приложений между собой. Для того чтобы ввести и осуществить первоначальную проверку данных на стороне клиента следует использовать HTML формы и . Ниже приведен пример простейшей формы, с помощью которой вводится текстовый параметр (значение ), который впоследствии передается на сервер в качестве параметра метода POST.
В атрибуте method элемента form указывается метод, определяющий способ передачи данных на сервер (get или post). В атрибуте action указывается php файл
, который будет обрабатывать запрос. Если обработчиком должен быть текущий файл, то атрибут action добавлять не нужно. Для всех элементов, чье значение должно быть передано в качестве параметра HTTP запроса следует определить уникальное значение атрибута name . Именно значение атрибута name
будет являться индексом
в массивах $_GET, $_POST или $_REQUEST (смотрите пример выше). Нажатие на кнопку submit
отправляет форму со всеми введенными значениями на сервер.
Вы могли заметить, что на большинство сайтов можно лицезреть вот такие адреса:
Http://сайт/index.php?blog=2
Тут, даже не зная php, можно догадаться, что мы обращаемся к файлу index.php
Но то, что идет после знака вопроса, мало кто знает. Все довольно просто: ?blog=2
это объявление глобальной переменной «$_GET["blog"]» с значением «2». Таким образом я в скрипт передаю переменную которая отвечает за вывод информации из базы данных. Давайте напишем небольшой скрипт в котором Вы все наглядно увидите:
Мы используем оператор условий if() в качестве условия стоит вот такая строчка:
Isset($_GET["blog"])
isset() позволяет узнать существует ли переменная которая указана в скобках, то есть условие которое я описал в коде звучит так: Если существует переменная $_GET["blog"] то вывести содержимое этой переменной на экран. Вот что получилось:
Думаю понятно Создается глобальная переменная $_GET
с идентификатором который мы объявили в адресной строке (в данном случае с идентификатором «blog»
)
Теперь хочу пояснить один момент. Предположим нам необходимо объявить две переменные, как это сделать? Первая переменная объявляется после знака вопроса «?» Вторая же переменная объявляется после такого знака «&» (Если честно не знаю что это за знак
), вот пример объявление трех переменных:
Http://сайт/index.php?a=1&b=2&c=3
Вот код вывода:
if(isset($_GET["a"]) AND isset($_GET["b"]) AND isset($_GET["c"])) { echo $_GET["a"]." "; echo $_GET["b"]." "; echo $_GET["c"]." "; } ?>
Условие звучит так:
Если существует глобальная переменная $_GET["a"] и
глобальная переменная $_GET["b"] и
глобальная переменная $_GET["с"] то вывести их на экран
, вот результат:
Формы
Прежде чем мы перейдем к post
запросам, необходимо разобрать, что такое формы? Почему нужно? Потому что глобальная переменная $_POST[""] создается именно через формы. Что такое форма? Это поля для ввода какой-нить информации пользователем. Поля бывают в одну строчку, большие поля, так же бывают радио кнопочки, чек боксы. Разберем все по порядку...
Форма это тег:
У формы есть атрибуты, перечислю самые распространенные:
Давайте создадим форму:
В качестве файла обработчика я поставил файл test.php
так как именно в нем пишу для Вас примеры. Метод отправки я поставил post так как именно этим методам пользуются в 99.9% случаях. Так же я присвоил нашей форме имя — form
Теперь окунемся в мир элементов формы. Первым делом Вы должны понять, что почти все элементы являются тегом отличие лишь в атрибуте type
у этих тегов. Давайте я перечислю используемые элементы форм:
Я уверен, что вы не раз встречали такие поля, так что тут как говорится: «no comments»
Теперь давайте составим небольшую тренировочную анкету, с которой будем работать далее. Наша задача составить небольшую анкетку которая поведает нам имя заполнявшего, пол, из какой он страны, любимый цвет и поле текста где пользователь может добавить что-нить о себе. Вот что у меня получилось:
action – указываем файл, в который будут передаваться переменные.
method – метод передачи переменных. В нашем случае это метод POST.
name – название формы. Одновременно в файл будет передана переменная с таким именем.
Текстовые поля:
name – имена переменных. В нашем случае это имя и фамилия (переменные name и lastname).
type – тип поля. В нашем случае это текстовое поле.
name – имя кнопки и переменной, которая будет передана вместе с другими переменными.
type – тип кнопки. В нашем случае это кнопка для отправки данных.
value – текст на кнопке.
Код второго файла, который будет служить приемником переменных. Назовем его post-2.php
$name = $_POST;
$lastname = $_POST;
echo "Значения переменных, переданных методом POST - $name и $lastname";
Как и с методом GET, мы первым делом присваиваем переменным значения соответствующих элементов глобального массива
POST
. Далее для наглядности выводим эти переменные на экран при помощи .
Теперь при загрузке первого файла у нас загрузится форма. После введения данных жмем по кнопке «Отправить», в результате чего в новой вкладке у нас откроется страница со вторым файлом, на которой выведутся значения, прописанные в форме на предыдущей странице. То есть второму файлу будут переданы значения переменных с первого файла.
На этом данная статья про передачу переменных в PHP подошла к концу. Если вы не хотите пропустить появления других статей на блоге, рекомендую подписаться на новостную рассылку любым удобным способом в пункте «Подписка» либо воспользоваться формой ниже.
На этом все. Удачи вам и успеха в освоении основ PHP.
Применение методов GET
и POST
в PHP трудно переоценить, поскольку эти методы встречаются практически на каждом сайте. Прежде чем изучать ниже описанный материал, советую ознакомится с html тегом
За последние 5 лет мобильный телефон крали у меня 4 раза...
Вроде бы ж и варешку не раззеваю, да и в курсе как и где могут облегчить... Но приходит момент — и каждый из нас понимает, что — не доглядел...
Вот и украли телефон
Из 4 случаев краж мобильного т
У вас низкая скорость интернета и вы хотите её увеличить? Тогда читайте эту статью и узнаете как поднять скорость интернета.
Я не открою жуткий секрет, если скажу, что скорость интернета зависит всего от двух факторов: от вашего интернет провайдера и от в
Общие характеристики Тип
Определиться с типом устройства (телефон или смартфон?) довольно просто. Если нужен простой и недорогой аппарат для звонков и SMS, рекомендуется остановить выбор на телефоне. Смартфон обходится дороже, зато предлагает множество р
Современные браузере постепенно обрастают необходимым базовым функционалом и Firefox в этом случае не исключение. С недавних пор разработчики прикрутили к браузеру функцию Speed Dial, которая отвечает за быстрый ввод адресов в новой вкладке. На самом деле