- Методы GET и POST Синтаксис тернарного оператора
- Передача данных методом GET
- Передача данных методом POST
- Распечатка массивов
- textarea
- Синтаксис тернарного оператора
- Передать post параметры php
- POST-запросы
- Форма ввода данных
- Форма ввода данных
- Форма ввода данных
- Обработка форм в PHP
- Обработка формы с GET-параметрами
- Метод POST
- Изменение обработчика формы
Методы GET и POST
Синтаксис тернарного оператора
Как правило данные передаются из формы, иногда данные могут передавться через адресную строку. Для передачи данных существуют два специальных метода — это методы POST и GET, и соответственно, в зависимости от того каким методом мы отправляем данные, эти данные будут доступны в одном из двух предопределённых массивов: это массив $_POST и массив $_GET
Передача данных методом GET
Создадим в папке с уроком файл index.php
Создадим в форме поле input и кнопку button .
В адресной строке появится запись: ?name=Андрей — таким образом передаются данные методом GET.
Передаются они через адресную строку в формате ключ — значение .
— Где ключ — это имя поля: name ,
— а значение это то, что мы ввели в данное поле ( Андрей ).
Все GET-параметры идут после вопросительного знака .
По умолчанию данные из формы отправляются методом GET
передача данных методом GET:
Передача данных методом POST
Для этого в форме используем атрибут method , в котором укажем метод post . При нажатии на кнопку данные отправляются, но в адресной строке их нет. Если нажать кнопку F5 или иконку обновления страницы , браузер предложит повторно отправить форму .
Для того, чтобы эту проблему избежать, эта проблема известна еще как » проблема F5«, мы должны перезапрашивать страницу .
Так как данные, при отправке методом POST, не видны, его можно применять при отправке важных,секретных данных, например, пароль и логин при регистрации и т. д.
Метод GET использовать для этих целей нельзя . Метод GET применяется, например, при добавлении товара в корзину.
Так же преимущество POSTа перед GETом это то, что он может отправлять неограниченный объем данных .
Используем еще один атрибут формы action , в котором мы укажем, куда будет отправляться форма(action.php). По умолчанию, если мы не укажем action , то данные будут отправлятся на эту же страницу .
Создадим файл action.php — в нем распечатаем наши данные.
передача данных методом POST:
Распечатка массивов
Распечатка массивов, только в том случае, если в них есть данные, переданные методом POST
Первый случай заключается в использовании функции empty ( пустой ).
Эта функция проверяет, не пуста ли, та или иная переменная и существует ли она вообще. Если переменная существует и она не пуста, тогда функция empty вернет ложь ( false ), если она пуста либо ее не существует, вернет — истину ( true ).
if (! empty ( $_POST )) echo ‘
' ;
print_r ( $_POST );
echo '
‘ ;
>
if ( ! empty ( $_GET )) echo ‘
' ;
print_r ( $_GET );
echo '
‘ ;
>
?>
распечатка массива данных, переданных методом POST с использованием функции empty :
Второй способ — это проверить, существует ли какой-нибудь элемент в массиве . Зачастую проверяется кнопка или какое-нибудь обязательное поле формы.
Сейчас кнопка не имеет имени и поэтому в массиве $_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» :
Чтобы данные принимала эта же страница (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 запишем:
Передать post параметры 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 и ввести в форму какие-нибудь данные:
И по нажатию кнопки введенные данные методом POST будут отправлены скрипту user.php :