- Руководство по GET и POST запросам в PHP
- PHP-метод GET
- Преимущества и недостатки использования метода GET
- PHP-метод POST
- Преимущества и недостатки использования метода POST
- Переменная $ _REQUEST
- Похожие посты
- Руководство по загрузке файлов на сервер в PHP
- Список сообщений об ошибках в PHP
- Руководство по синтаксису в PHP
- Отправка данных на сервер
- GET-запросы в PHP
- Метод GET
- Учимся обрабатывать параметры
- Учимся работать с формами
Руководство по GET и POST запросам в PHP
Веб-браузер связывается с сервером, как правило, с помощью одного из двух HTTP-методов (протокола передачи гипертекста) — GET и POST. Оба метода передают информацию по-разному и имеют разные преимущества и недостатки, как описано ниже.
PHP-метод GET
В методе GET данные отправляются в виде параметров URL, которые обычно представляют собой строки пар имени и значения, разделенные амперсандами ( & ). В целом URL-адрес с данными GET будет выглядеть так: http://www.example.com/action.php?name=john&age=24
Полужирным шрифтом в URL-адресе выделены параметры GET, а выделенными курсивом — значения этих параметров. В URL-адрес можно встроить более одного parameter=value , объединив их с помощью амперсанда ( & ). С помощью метода GET можно отправлять только простые текстовые данные.
Преимущества и недостатки использования метода GET
- Поскольку данные, отправленные методом GET, отображаются в URL-адресе, можно добавить страницу в закладки с определенными значениями строки запроса.
- Метод GET не подходит для передачи конфиденциальной информации, такой как имя пользователя и пароль, поскольку они видны в строке запроса URL, а также потенциально хранятся в памяти браузера клиента в качестве посещенной страницы.
- Поскольку метод GET назначает данные переменной среды сервера, длина URL-адреса ограничена, т.е. существует ограничение на отправку общих данных.
PHP предоставляет суперглобальную переменную $_GET для доступа ко всей информации, отправляемой либо через URL-адрес, либо через HTML-форму с использованием method=»get» .
Hi, " . $_GET["name"] . ""; > ?> ">
PHP-метод POST
В методе POST данные отправляются на сервер в виде пакета в отдельном сообщении со скриптом обработки. Данные, отправленные с помощью метода POST, не будут отображаться в URL-адресе.
Преимущества и недостатки использования метода POST
- Он более безопасен, чем GET, поскольку введенная пользователем информация никогда не отображается в строке запроса URL или в журналах сервера.
- Существует гораздо больший лимит на объем передаваемых данных; с помощью POST можно отправлять как текстовые, так и двоичные данные (загрузка файла).
- Поскольку данные, отправленные методом POST, не отображаются в URL-адресе, невозможно добавить страницу в закладки с помощью определенного запроса.
Как и $_GET , PHP предоставляет другую суперглобальную переменную $_POST для доступа ко всей информации, отправляемой методом POST или отправляемой через HTML-форму с помощью method=»post» .
Hi, " . $_POST["name"] . ""; > ?> ">
Переменная $ _REQUEST
PHP предоставляет еще одну суперглобальную переменную $_REQUEST , которая содержит значения переменных $_GET и $_POST , а также значения суперглобальной переменной $_COOKIE .
Hi, " . $_REQUEST["name"] . ""; > ?> ">
Вы узнаете больше о файлах cookie и валидации форм в следующих разделах.
Суперглобальные переменные $_GET , $_POST и $_REQUEST — это встроенные переменные, которые всегда доступны во всех областях скрипта.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка 4 / 5. Количество оценок: 4
Оценок пока нет. Поставьте оценку первым.
Похожие посты
Руководство по загрузке файлов на сервер в PHP
В этом руководстве мы узнаем, как загружать файлы на удаленный сервер с помощью простой HTML-формы и PHP. Вы можете загружать файлы любого типа, например изображения, видео, ZIP-файлы, документы Microsoft Office, PDF-файлы, а также исполняемые файлы и множество других типов файлов. Шаг 1. Создание HTML-формы для загрузки файла В следующем примере будет создана простая HTML-форма, которую…
Список сообщений об ошибках в PHP
Обычно, когда движок PHP сталкивается с проблемой, препятствующей правильной работе скрипта, он генерирует сообщение об ошибке. Существует шестнадцать различных уровней ошибок, и каждый уровень представлен целым числом и связанной с ним константой. Вот список уровней ошибок: Название Значение Описание E_ERROR 1 Неустранимая ошибка времени выполнения от которой невозможно избавиться. Выполнение скрипта немедленно прекращается E_WARNING 2…
Руководство по синтаксису в PHP
Скрипт PHP начинается с тега . Пространство между PHP-тегами в следующем примере просто указывает механизму PHP обрабатывать заключенный блок кода как код PHP, а не простой HTML. На многих серверах допустимо использовать короткий открывающий тег
Разработка сайтов для бизнеса
Если у вас есть вопрос, на который вы не знаете ответ — напишите нам, мы поможем разобраться. Мы всегда рады интересным знакомствам и новым проектам.
Отправка данных на сервер
Самым простым способом передачи данных на сервер приложению PHP извне представляет передача данных через строку запроса.
Строка запроса представляет набор параметров, которые помещаются в адресе после вопросительного знака. При этом каждый параметр определяет название и значение. Например, в адресе:
http://localhost/user.php?name=Tom&age=36
Часть ?name=Tom&age=36 представляет строку запроса, в которой есть два параметра name и age . Для каждого параметра определено имя и значение, которые отделяются знаком равно. Параметр name имеет значение «Tom», а параметр age — значение 36. Друг от друга параметры отделяются знаком амперсанда.
Например, определим следующий скрипт user.php со следующим содержимым:
if(isset($_GET["age"])) < $age = $_GET["age"]; >echo "Имя: $name
Возраст: $age"; ?>
Когда мы вводим в адресную строку браузера некий адрес и нажимаем на оправку, то серверу отправляется запрос типа GET . В PHP по умолчанию определен глобальный ассоциативный массив $_GET , который хранит все значения, передаваемые в запроса GET. Используя ключи передаваемых данных, мы можем из массива $_GET получить передаваемые значения.
При отправки строки запроса ключами в этом массиве будут названия параметров, а значениями — значения параметров.
Например, в строке запроса передается параметр name=Tom . Соответственно, чтобы получить значение параметра name из запроса, обращаемся по соответствующему ключу:
Однако стоит учитывать, что в адресной строке необязательно будет использоваться строка запроса или конкретно данный параметр. Поэтому перед получением значения параметра сначала смотрим, а передан ли вообще такой параметр:
Теперь обратимся к этому скрипту, например, так http://localhost/user.php?name=Tom&age=36 :
GET-запросы в PHP
Итак, пришло время нам начать взаимодействовать с пользователем.
Как мы говорили ранее, PHP работает на сервере. Отсюда следует вопрос, а как же нам из браузера начать с ним взаимодействовать? Например, заполнить форму логина на сайте и отправить данные на сервер, чтобы наш код с ним что-нибудь сделал.
Именно об этом мы и поговорим в этом уроке.
Итак, давайте удалим все наши файлы в проекте и создадим новый пустой файл с именем index.php. Запишем в него следующий код:
Давайте выполним этот скрипт, открыв в браузере адрес:
http://myproject.loc/index.php
Как мы помним из этого урока, мы отправляем запрос веб-серверу, он понимает, что мы запрашиваем PHP-скрипт, выполняет его с помощью интерпретатора и возвращает нам ответ в виде результата выполнения этого скрипта.
Возникает вопрос: «А как можно передать от пользователя внутрь скрипта какие-либо данные?». Ответов на него у нас сразу несколько, и все мы их рассмотрим в этом уроке.
Метод GET
Когда мы вбиваем адрес скрипта и нажимаем Enter, выполняется GET-запрос по протоколу HTTP. В этом типе запроса к основному адресу мы можем прикрепить дополнительные параметры. Для того чтобы передать их, в конце основного адреса ставится знак вопроса, и мы можем перечислять эти параметры — вот так:
параметр1=значение1.
При этом если нам нужно указать несколько параметров, то мы разделяем их с помощью знака амперсанда:
арг1=знач1&арг2=знач2.
Если сейчас перейти по этой ссылке в браузере, то на сервер передадутся 2 параметра:
Мы можем очень просто получить к ним доступ из PHP с помощью магической переменной $_GET. Эта переменная является суперглобальной, то есть доступна нам в PHP всегда и в любом месте. Она представляет собой ассоциативный массив, в котором хранятся все переданные в запросе GET-параметры.
Давайте изменим код нашего index.php, чтобы узнать, что именно хранится в этой переменной.
array (size=2) 'arg1' => string '123' (length=3) 'arg2' => string 'scrrr' (length=5)
Как мы можем видеть, это действительно наши переданные аргументы, представленные в виде ассоциативного массива.
Учимся обрабатывать параметры
array (size=2) 'login' => string 'admin' (length=5) 'password' => string '12345' (length=5)
Разумеется, мы можем обращаться к этим элементам как к элементам обычного массива. Например, так:
Давайте создадим простую страничку, на которой мы будем выводить переданные с помощью GET-запроса логин и пароль.
Переданный логин:
Переданный пароль:
Обновим нашу страничку в браузере и увидим результат.
Отлично, мы успешно обработали данные, которые нам пришли от пользователя.
Учимся работать с формами
Давайте теперь вспомним уроки про формы из курса по HTML и сделаем простейшую форму для отправки GET-запроса на страничку.
Давайте запишем в наш index.php следующий код:
Логин
Пароль
И давайте теперь откроем его в браузере: http://myproject.loc/index.php
Как мы видим по исходному коду, форма отправит аргументы login и password с введенными значениями на адрес /login.php.
Давайте введем в поля значения admin и Pa$$w0rd соответственно и нажмем на кнопку «Войти».
Где сервер нам скажет о том, что такой странички не найдено.
Отлично! Так давайте же её создадим! Создаём рядом с нашим index.php файл с именем login.php. И пишем в него следующий код:
else < $isAuthorized = false; >?>
Вернёмся на нашу форму и повторно отправим пароль. Теперь мы увидим информацию о том, что мы успешно авторизовались. Это простейший прототип формы авторизации. Разумеется, он сильно упрощён, не всё сразу. А пока – делаем домашнее задание.