METANIT.COM

Методы GET и POST
Синтаксис тернарного оператора

Как правило данные передаются из формы, иногда данные могут передавться через адресную строку. Для передачи данных существуют два специальных метода — это методы POST и GET, и соответственно, в зависимости от того каким методом мы отправляем данные, эти данные будут доступны в одном из двух предопределённых массивов: это массив $_POST и массив $_GET

Передача данных методом GET

Создадим в папке с уроком файл index.php

Создадим в форме поле input и кнопку button .

В адресной строке появится запись: ?name=Андрей — таким образом передаются данные методом GET.

Передаются они через адресную строку в формате ключ — значение .

— Где ключ — это имя поля: name ,

— а значение это то, что мы ввели в данное поле ( Андрей ).

Все GET-параметры идут после вопросительного знака .

По умолчанию данные из формы отправляются методом GET

передача данных методом GET:

get_post1

Передача данных методом POST

Для этого в форме используем атрибут method , в котором укажем метод post . При нажатии на кнопку данные отправляются, но в адресной строке их нет. Если нажать кнопку F5 или иконку обновления страницы , браузер предложит повторно отправить форму .

Для того, чтобы эту проблему избежать, эта проблема известна еще как » проблема F5«, мы должны перезапрашивать страницу .

Так как данные, при отправке методом POST, не видны, его можно применять при отправке важных,секретных данных, например, пароль и логин при регистрации и т. д.

Метод GET использовать для этих целей нельзя . Метод GET применяется, например, при добавлении товара в корзину.

Так же преимущество POSTа перед GETом это то, что он может отправлять неограниченный объем данных .

Используем еще один атрибут формы action , в котором мы укажем, куда будет отправляться форма(action.php). По умолчанию, если мы не укажем action , то данные будут отправлятся на эту же страницу .

Создадим файл action.php — в нем распечатаем наши данные.

передача данных методом POST:

get_post2

Распечатка массивов

Распечатка массивов, только в том случае, если в них есть данные, переданные методом POST

Первый случай заключается в использовании функции empty ( пустой ).

Эта функция проверяет, не пуста ли, та или иная переменная и существует ли она вообще. Если переменная существует и она не пуста, тогда функция empty вернет ложь ( false ), если она пуста либо ее не существует, вернет — истину ( true ).

if (! empty ( $_POST )) echo ‘

' ; 
print_r ( $_POST );
echo '

‘ ;
>
if ( ! empty ( $_GET )) echo ‘

' ; 
print_r ( $_GET );
echo '

‘ ;
>
?>

распечатка массива данных, переданных методом POST с использованием функции empty :

get_post3

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

Сейчас кнопка не имеет имени и поэтому в массиве $_POST ее нет.

Если добавим (в index.php) имя кнопки , например: name=»send» , то данное имя появится в массиве $_POST . Добавим также значение value=»test» и в массиве появится «test» как значение поля формы ( кнопка — то же поле формы ) с ключем «send» .

Мы можем проверить (в action.php), существует ли у нас такая кнопка с помощью функции isset , которая проверяет, установленна ли переменная, не важно, есть значение у переменной или нет, главное чтобы она была.

Проверяем: если у нас существует в массиве $_POST элемент «send» , тогда мы распечатаем этот массив — это значит, что кнопка была нажата и форма была отправленна .

// если у нас существует в массиве $_POST элемент «send»,
// тогда мы распечатаем этот массив
if ( isset ( $_POST [ ‘send’ ])) echo ‘

$_POST

' ;
print_r ( $_POST );
echo '

‘ ;
>

if ( isset ( $_GET [ ‘send’ ])) echo ‘

$_GET

' ;
print_r ( $_GET );
echo '

‘ ;
>
?>

Распечатка массива данных, переданных методом POST с помощью проверки

существования в массиве $_POST элемент «send» :

get_post4

Чтобы данные принимала эта же страница (index.php) делаем в форме action=»» — пустым или action=»index.php» .
Выведем на странице браузера полученное имя:
Введенное имя: — if ( !empty ($_POST[ ‘name’ ])) — проверяем, существует ли переменная(инициализированна ли она) и не пуста ли она,
— echo $_POST[ ‘name’ ] — если она существует, то выведем ее,
— в противном случае выведем: Форма не отправлена .

textarea

Добавим еще одно поле textarea , с именем name=»text» .
С помощью функции nl2br , переносы строк в поле textarea , будут так же отображаться в браузере .

Проверяем, введен ли текст в поле textarea .
Попробуем вывести проверку текста в поле textarea под формой с помощью тернарного оператора .

Синтаксис тернарного оператора

— если условие выполняется, тогда мы выполним выражение «да», если нет,
тогда мы выполним выражение «нет» (то, что идет после знака двоеточия).

В нашем случае: Введенный текст: ,
где:
— ! empty ( $_POST [‘text’ ]) ? — если у нас существует $_POST [‘text’ ] ,
— echo nl2br ( $_POST [‘text’ ]) — то его выводим,
— в противном случае выводим ‘Форма не отправлена’ .

В файле index.php запишем:

Источник

Http передача данных php

Одним из основных способов передачи данных веб-сайту является обработка форм. Формы представляют специальные элементы разметки HTML, которые содержат в себе различные элементы ввода — текстовые поля, кнопки и т.д. И с помощью данных форм мы можем ввести некоторые данные и отправить их на сервер. А сервер уже обрабатывает эти данные.

Создание форм состоит из следующих аспектов:

  • Создание элемента в разметке HTML
  • Добавление в этот элемент одно или несколько поле ввода
  • Установка метода передачи данных. Чаще всего используются методы GET или POST
  • Установка адреса, на который будут отправляться введенные данные

POST-запросы

Итак, создадим новую форму. Для этого определим новый файл form.php , в которое поместим следующее содержимое:

     

Форма ввода данных

Имя:

Возраст:

Атрибут action=»user.php» элемента form указывает, что данные формы будет обрабатывать скрипт user.php , который будет находиться с файлом form.php в одной папке. А атрибут method=»POST» указывает, что в качестве метода передачи данных будет применяться метод POST.

Теперь определим файл user.php , который будет иметь следующее содержание:

 if(isset($_POST["age"])) < $age = $_POST["age"]; >echo "Имя: $name 
Возраст: $age"; ?>

Для обработки запросов типа POST в PHP используется встроенная глобальная переменная $_POST . Она представляет ассоциативный массив данных, переданных с помощью метода POST. Используя ключи, мы можем получить отправленные значения. Ключами в этом массиве являются значения атрибутов name у полей ввода формы.

Например, так как атрибут name поля ввода возраста имеет значение age ( ), то в массиве $_POST значение этого поля будет представлять ключ «age»: $_POST[«age»]

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

Теперь мы можем обратиться к скрипту form.php и ввести в форму какие-нибудь данные:

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

И по нажатию кнопки введенные данные методом POST будут отправлены скрипту user.php :

массив <img decoding=

Форма ввода данных

Имя:

Возраст:

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

Отправка формы в PHP

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

      if(isset($_GET["age"])) < $age = $_GET["age"]; >echo "Имя: $name 
Возраст: $age"; ?>

Форма ввода данных

Имя:

Возраст:

Источник

Читайте также:  Php curl wsdl soap
Оцените статью