Обработка get запроса php

GET-запросы в PHP

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Итак, пришло время нам начать взаимодействовать с пользователем.

Как мы говорили ранее, PHP работает на сервере. Отсюда следует вопрос, а как же нам из браузера начать с ним взаимодействовать? Например, заполнить форму логина на сайте и отправить данные на сервер, чтобы наш код с ним что-нибудь сделал.

Именно об этом мы и поговорим в этом уроке.

Итак, давайте удалим все наши файлы в проекте и создадим новый пустой файл с именем index.php. Запишем в него следующий код:

Давайте выполним этот скрипт, открыв в браузере адрес:
http://myproject.loc/index.php

Как мы помним из этого урока, мы отправляем запрос веб-серверу, он понимает, что мы запрашиваем PHP-скрипт, выполняет его с помощью интерпретатора и возвращает нам ответ в виде результата выполнения этого скрипта.

Возникает вопрос: «А как можно передать от пользователя внутрь скрипта какие-либо данные?». Ответов на него у нас сразу несколько, и все мы их рассмотрим в этом уроке.

Метод GET

Когда мы вбиваем адрес скрипта и нажимаем Enter, выполняется GET-запрос по протоколу HTTP. В этом типе запроса к основному адресу мы можем прикрепить дополнительные параметры. Для того чтобы передать их, в конце основного адреса ставится знак вопроса, и мы можем перечислять эти параметры — вот так:
параметр1=значение1.
При этом если нам нужно указать несколько параметров, то мы разделяем их с помощью знака амперсанда:
арг1=знач1&арг2=знач2.

Если сейчас перейти по этой ссылке в браузере, то на сервер передадутся 2 параметра:

Давайте изменим код нашего index.php, чтобы узнать, что именно хранится в этой переменной.

Мы увидим следующее:

Как мы можем видеть, это действительно наши переданные аргументы, представленные в виде ассоциативного массива.

Учимся обрабатывать параметры

Разумеется, мы можем обращаться к этим элементам как к элементам обычного массива. Например, так:

Давайте создадим простую страничку, на которой мы будем выводить переданные с помощью GET-запроса логин и пароль.

Обновим нашу страничку в браузере и увидим результат.
Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Отлично, мы успешно обработали данные, которые нам пришли от пользователя.

Учимся работать с формами

Давайте теперь вспомним уроки про формы из курса по HTML и сделаем простейшую форму для отправки GET-запроса на страничку.

Давайте запишем в наш index.php следующий код:

И давайте теперь откроем его в браузере: http://myproject.loc/index.php

Как мы видим по исходному коду, форма отправит аргументы login и password с введенными значениями на адрес /login.php.

Давайте введем в поля значения admin и Pa$$w0rd соответственно и нажмем на кнопку «Войти».
Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Где сервер нам скажет о том, что такой странички не найдено.
Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Отлично! Так давайте же её создадим! Создаём рядом с нашим index.php файл с именем login.php. И пишем в него следующий код:

Вернёмся на нашу форму и повторно отправим пароль. Теперь мы увидим информацию о том, что мы успешно авторизовались. Это простейший прототип формы авторизации. Разумеется, он сильно упрощён, не всё сразу. А пока – делаем домашнее задание.

Источник

Обработка GET-запроса вPHP

Дата добавления: 2015-06-12 ; просмотров: 6039 ; Нарушение авторских прав

Когда мы создавали клиентскую часть нашего проекта на Java, то говорили о понятии GET-запроса. Именно при помощи GET-запроса мы отправляли данные на серверную частьPHP. В таком виде мы отправляли GET-запрос из Java:

Всего передаются десять параметров, значение каждого параметра–это количество поступившего товара. Это значит, что этот GET-запрос мы должны обработать изPHP. ДанныйGET-запрос изJava передавался по адресу http://puh/tovar.php.Вспомним программный кодJava, который мы писали для этих целей:

// Формируем GET-запрос для отправки

String str = «http://puh/tovar.php»+makeGet();

Страницу tovar.php мы уже добавили к нашему проекту, давайте перейдем на нее и запишем теги для написания PHPкода (см. рис. 5.23):

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Весь дальнейший программный код на текущем занятии мы будем вводить в файле нашего проектаtovar.php!

Добавим одну строчкуPHP-кода:

Команда echo выводит данные на страницу. Сохраним изменения в проекте,откроем браузер и в адресной строке введем:http://puh/tovar.php.Нажмем клавишу Enterи увидим результат(см. рис. 16):

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Все работает нормально,русские буквы отображаются правильно!

В дальнейшем, как и обычно, не будем закрывать окно браузера, а будем нажимать клавишу F5 для обновления результата.

Вспомним. Название любой переменной, в том числе и массива, в PHPначинается с символа доллара ($)!

Изменим наш PHP-код на следующий:

Теперь на страницу будет выводиться значение параметра с именем: tov1. Перейдем в браузер и в адресной строке введем: http://puh/tovar.php?tov1=17. Адрес страницы остался тем же, а после адреса добавился GET-запрос с одним параметром под именем tov1.Нажмем клавишуEnter –увидим результат(см. рис. 5.17):

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Получилось следующее:код PHP обработал параметр из GET-запроса и его значение вывел на страницу. Таким образом,GET-запрос можно передать странице через ссылку в адресной строке браузера. Это один из способов передачи данных на веб-страницу. Мы уже программировали процесс передачи данных при создании клиентской части на языке Java.Результат и в том, и в другом случае получается одинаковым –страница tovar.php получает данные и может их обработать.

При открытииPHP-страницы, ее программный код, записанный внутри тегов начинает выполняться как обычная программа!

Напомним, что язык программирования PHP имеет такой же синтаксис, как иJava. Однако,между ними имеются определенные отличия.некоторые из них мы рассмотрели на самом первом занятии.

Рассмотрим еще одно отличие –сложение строк (конкатенация) обозначается в PHPсимволомточка(.). В Javaдля этого применяется символплюс(+). Ниже приведены примеры сложения строк в Javaи PHP:

//Сложение строк в PHP

//Сложение строк в Java

String str = «Hello! «+»Java»;

Из клиентской части нам передается GET-запрос. Прежде чем обработать эти данные, необходимо проверить его формат и убедиться, что имеются параметры с названием «tov..» и наличием хотя бы одного значения,отличного от нуля. Когда передаются все нулевые значения –нам не нужно обрабатывать такой запрос!

Удалим нашу проверочную строку:

А вместо нее запишем кодPHP для проверки:

Переменной flag изначально присваивается значение falseи меняется на true, если найден хотя бы один параметр в GET-запросе с названием на tov и значением отличным от нуля. В этом случае мы выводим проверочную фразу: «Формат верный».

Если находим хотя бы одно такое значение –меняем значение переменной- flag, и прерываем цикл.

Перейдем в браузер и введем в адресной строке следующее:

http://puh/tovar.php?name=Вася&famil=Петров

Нажмем клавишу Enter –на странице ничего не появилось (см. рис.5.18):

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Это означает, что данныйGET-запрос не прошел проверку! И это правильно, потому что данный GET-запрос содержит совершенно другие параметры: name иfamil.

Теперь введем правильный GET-запрос в адресную строку браузера:http://puh/tovar.php?tov1=100&tov2=200.

Нажимаем Enter и видим, что на странице появилось сообщение:Формат верный! Наша проверка работает правильно.

Мы не проверяем количество переданных параметров, так как из клиентской части на Javaмы всегда отправляем именно десять параметров.

Изучая язык программирования Java, мы знакомились с понятием метода класса. ВPHP тоже можно создавать классы, но в отличие от Java, в PHPметод может находиться вне класса, т.е. без класса. Такой метод называется функцией. Принцип работы функции такой же, как и у метода. При вызове функциивыполняется программный код,расположенный внутри фигурных скобокфункции. Записьфункции начинается со служебного словаfunction. Например:

В данном случае имя функции: func.

В верхней части нашего кода добавим функцию, вывод сообщения перенесем в эту функцию и получим следующее:

echo «Формат верный!»;

Внимание. Подсветка кода для PHP работает по тем же принципам, как и в Java! Комбинация клавиш вызывает вспомогательное окно подсветки программного кода.

На то место, где был вывод сообщения – вставим вызов функции:

// Если формат GET-запроса оказался верным

Теперь, в случае успешной проверки вызывается функцияrunMySQL(), а при ее вызове –выполняется программный код в ее фигурных скобках.

Функция runMySQL() будетвыполнять запись данных в базу MySQLи возвращать ответ клиентской части на Java в виде остатков товаров, в формате:

Это и есть данные,которые мы получали из Java, а потом выводили в таблицу, в колонку остатков товаров. Вывод сообщения о правильном формате удалим:

Это было временное сообщение на момент проверки.

Источник

Обработка форм в PHP

Что такое форма

и пр., которые заполняются пользователем, отправляются на сервер и обрабатываются с помощью PHP.

Простой пример формы:

В этой форме есть 2 поля для заполнения (input и textarea), а также кнопка отправки формы.

Итак, давайте разбираться, что тут вообще происходит.

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Обработка формы с GET-параметрами

Формы можно передавать с помощью методов GET и POST. Указывается метод с помощью атрибута method тега form :

Если метод не указан, то по-умолчанию форма отправляется методом GET.

Формы, отправляемые методом GET, передают данные через URL-адрес.

В отличие от обычных переменных, этот массив виден в любой области видимости, в т.ч. внутри функций. Внутри этого массива хранятся GET-параметры текущего запроса в виде ассоциативного массива.

Получить доступ к этим параметрам можно так:

Поэтому важно указывать атрибут name каждому элементу формы, иначе этот элемент не отправится на сервер.

Итак, создадим простенькую форму и добавим ей PHP-обработчик:

Теперь при отправке заполненной формы PHP выведет на экран то, что мы в эту форму написали.

Метод POST

По этой причине для отправки форм, которые могут содержать конфиденциальную информацию, нужно всегда использовать метод POST. При использовании метода POST данные передаются в теле http-запроса, а не в URL.

Метод GET в формах чаще всего используется для поиска чего-либо (товаров, статей и т.д.).

Некоторые разработчики считают, что данные, передаваемые методом POST, имеют какую-то особую защиту, которая не позволяет злоумышленнику украсть или подменить их.

Это не так. Никакой дополнительной защиты у метода POST нет. Для защиты http-запросов нужно использовать https.

Изменение обработчика формы

При желании вы можете отправлять форму не на текущий URL, а на какой-нибудь другой. Для этого достаточно указать путь к скрипту в атрибуте action :

Источник

Учимся работать с GET и POST запросами

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Здравствуйте дорогой читатель Блога RS! Сегодня мы с Вами будем разбирать get и post запросы. Так же поговорим о формах в html.

Для чего нужны вышеупомянутые запросы? Если Вы экспериментировали с php то могли заметить, что при повторной загрузки страницы, весь код выполняется заново, я имею ввиду, что скрипт заново создает переменные, и манипулирует с ними. Но парой необходимо передать какие то данные из одного скрипта в другой, например при отправки содержимого формы. Вот тут то на помощь и приходят запросы, с помощью которых Вы можете передать значение переменных из одного скрипта в другой.

GET запрос

Вы могли заметить, что на большинство сайтов можно лицезреть вот такие адреса:

Тут, даже не зная php, можно догадаться, что мы обращаемся к файлу index.php Но то, что идет после знака вопроса, мало кто знает. Все довольно просто: ?blog=2 это объявление глобальной переменной «$_GET[‘blog’]» с значением «2». Таким образом я в скрипт передаю переменную которая отвечает за вывод информации из базы данных. Давайте напишем небольшой скрипт в котором Вы все наглядно увидите:

Мы используем оператор условий if() в качестве условия стоит вот такая строчка:

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Думаю понятно Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса phpСоздается глобальная переменная $_GET с идентификатором который мы объявили в адресной строке (в данном случае с идентификатором «blog»)

Теперь хочу пояснить один момент. Предположим нам необходимо объявить две переменные, как это сделать? Первая переменная объявляется после знака вопроса «?» Вторая же переменная объявляется после такого знака «&» (Если честно не знаю что это за знак Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php), вот пример объявление трех переменных:

Условие звучит так:

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Формы

У формы есть атрибуты, перечислю самые распространенные:

Давайте создадим форму:

В качестве файла обработчика я поставил файл test.php так как именно в нем пишу для Вас примеры. Метод отправки я поставил post так как именно этим методам пользуются в 99.9% случаях. Так же я присвоил нашей форме имя — form

Теперь окунемся в мир элементов формы. Первым делом Вы должны понять, что почти все элементы являются тегом отличие лишь в атрибуте type у этих тегов. Давайте я перечислю используемые элементы форм:

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Я уверен, что вы не раз встречали такие поля, так что тут как говорится: «no comments» Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Теперь давайте составим небольшую тренировочную анкету, с которой будем работать далее. Наша задача составить небольшую анкетку которая поведает нам имя заполнявшего, пол, из какой он страны, любимый цвет и поле текста где пользователь может добавить что-нить о себе. Вот что у меня получилось:

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Обратите внимание, что почти у каждого тега есть атрибут value, для чего он? В него записываются данные которые Вы собираетесь перенести на другую страницу. Надеюсь понятно Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Теперь если запустить этот код в браузере, то мы увидим следующее:

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

У формы я использовал атрибут action со значением test.php это означает, как я уже говорил, что данные из формы передадутся в файл test.php.

POST запрос

Обработка get запроса php. Смотреть фото Обработка get запроса php. Смотреть картинку Обработка get запроса php. Картинка про Обработка get запроса php. Фото Обработка get запроса php

Заключение

Ну что ж, за сегодня мы разобрали два метода передачи данных между скриптами, так же галопам познакомились с формами. Очень надеюсь, что эта информация Вам хоть где то пригодится. Если есть какие вопросы, или мысли, пишите комментарии. Удачи Вам, на сегодня у меня все!

Источник

Обработка GET-запроса в строке URL средствами PHP

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

Вообще говоря, любая строка URL в терминах PCRE 1 может быть нестрого описана вот таким регулярным выражением:

Приведенное выше регулярное выражение описывает GET-параметры как фрагмент строки адреса, начинающийся со знака вопроса и продолжающийся до конца строки или до первой решётки (#), если таковая имеется 2 ; про якоря (anchors) в адресах часто забывают — именно они объявляются с помощью решётки.

Вооружившись функциями для работы с регулярными выражениями, несложно проводить с GET-параметрами различные манипуляции.

Получение строки GET-запроса.

Для начала поставим самую простую задачу — получить часть URL, содержащую GET-параметры.

Исключение GET-запроса из URL.

Иногда нужно получить URL без GET-параметров (например, при перенаправлении запросов с помощью mod_rewrite зачастую требуется проводить анализ URL, чтобы сформировать ответ клиенту; нередко для анализа нужна только статическая часть URL, а часть, где передается GET-запрос, не нужна и даже мешает). Эта операция занимает фактически одну строку, но, чтобы не писать каждый раз однотипный код, удобно вынести его в функцию 4 :

Замена содержимого GET-параметров.

Еще более сложная ситуация возникает в случае, когда в URL уже может находиться нужный к передаче GET-параметр (т.е. с тем же именем) — в этом случае нужно даже не просто корректно дописать адрес, а найти там нужную переменную и переписать её значение. Например, было

Все эти задачи может решить функция sgp ( ) :

За один вызов функции можно менять и несколько переменных:

В примерах для краткости изложения приведены относительные имена. Функция, разумеется, может работать и с абсолютными адресами, подчиняющимися стандарту URI. Код функции достаточно прост:

Для начала получаем GET-параметры адреса (код, аналогичный функции ggp ( ) ):

Если GET-параметры отсутствуют — заменять негде, переданный адрес заведомо останется неизменным и его можно сразу вернуть, завершив работу функции:

Далее окончательно формируем обновленную строку GET-запроса:

Обрабатываем возможное наличие якоря:

И, наконец, конструируем конечный адрес полностью, дописывая статическую часть адреса страницы и якорь, после чего возвращаем полученный результат:

Следует отметить, что эту задачу можно решить и без интенсивного использования регулярных выражений:

// Версия функции «substitue get parameter» без регулярных выражений

Версия без регулярных выражений работает где-то на треть быстрее, однако эта разница не чувствуется, поскольку общее время работы очень мало (1000 итераций выполняются за сотые доли секунды).

1. Работа с PCRE-совместимыми регулярными выражениями описана на соответствующей странице руководства по PHP.

В случае статического адреса с якорем обязана совпасть третья подмаска, поэтому вторая будет обязательно пронумерована, хотя и будет содежать пустую строку.

4. Вообще говоря, если положиться на корректность URL (т.е. допустить в т.ч., что знак вопроса встречается в адресе только один раз и решётка, если присутствует, следует за ним, а не перед ним), то можно использовать более простой код:

Источник

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

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