Метод post php пример пост запроса
Метод(method) post в php - это один из двух , наверное самых распространенных методов в php! Попробуем разобраться, что такое метод post, как отправлять post php, нарисуем форму с пост запросом! И конечно же приведем несколько примеров использования post!
Подробно о методе post в php
- Что такое метод POST?
- Array post php это что?
- Форма с методом ->
POST - Как получать данные отправленные методом ->
POST - Пример отправки данных методом ->
POST - Как отправить POST запрос на другую страницу!?
- Получить POST запрос в переменную!?
- Передача переменных между страницами post!?
Что такое метод POST?
Дадим определение, что такое метод "POST"?
Метод "POST" - это способ передачи данных из формы (form) на сервер, где он будет обработан для последующих действий с данными. Например вывод на экран(echo), запись в файл(file_put_contents), запись в базу данных и т.д.
Как обозначается метод отправки данных "POST" в форме?
Обязательное условие для отправки данных из формы с помощью "метода POST" - атрибут
<form method="post">
</form>
Место обработки данных из метода POST?
Место(условно) где будет происходить обработка только два:
Данные будут обработаны:
Либо на этой странице.
Либо на другой.
Если "атрибут
Что нужно, чтобы отправить POST запрос!?
Для того, чтобы отправить post запрос потребуется:
Форма, из которой будет отправляться "post запрос".
Скрипт, который получит, обработает и выведет результат(если это требуется.)
Алгоритм отправки POST запроса!?
Алгоритм отправки данных методом post :
Заполняем форму.
Нажимаем отправить.
Обрабатываем данные отправление методом пост.
Какие данные отправляет метод POST
На живом примере(следующий пункт) разберем, как передаются данные в методом "POST".
Какой тип данных у POST?
Зачем нужно знать, какое тип у данных в методе POST?
Если вы знаете тип данных, то у соответствующих типах есть свои признаки поведения!
Если мы знаем поведение, то можем управлять этими данными.
Тип данных, которые передает метод POST - это массив!
Массив POST - что это?
POST - это не только
Массив post он же переменная "$_POST" - это одна из глобальных переменных, которая является ассоциативным массивом.
Пока - вы ничего не отправили методом POST, то в нем ничего нет. Для этого, выведем через var_dump($_POST);
array(0) {
}
Ниже рассматривается пример отправки методом post и получаем результат...и там же выводим массив "$_POST".
После нажатия на кнопку, вы можете вернуться сюда, и посмотреть, что вернет функция var_dump.
Получение массива POST с примером.
Поскольку выше мы говорили, в том числе о типе данных в "методе пост" рассмотрим первый пример отправки, получения и обработки данных "методом post".
Для этого нам понадобится:
Форма из которой будем отправлять данные. Подробно на форме остановимся ниже.
<input type="text" name="one" value="one"><br>
<input type="text" name="two" value="two"><br>
<input type="text" name="three" value="three"><br>
<input type="submit" name="tosend" value="ОТПРАВИТЬ" /><br>
</form>
Чтобы приять данные нужно создать такую запись в php, для вывода массива используем print_r:
Если вы размещаете такую запись внутри html документа, нужно, чтобы html понимал php
Соберем весь код для получения и вывода массива POST
<? if($_POST['tosend']){ print_r ($_POST);} ?>
<form method="post"
<input type="text" name="one" value="one"><br>
<input type="text" name="two" value="two"><br>
<input type="text" name="three" value="three"><br>
<input type="submit" name="tosend" value="ОТПРАВИТЬ"><br>
</form>
Форма для отправки массива POST
У вас есть два варианта:
Просто нажмите на кнопку отправить и вы получите результат "массива POST".
Либо в полях ввода напишите свою информацию.
И нажимаем отправить!
Форма с методом POST
Разберем подробно из чего должна состоять форма для отправки "запроса POST".
Двойной тег form
Необходимый атрибут method, который будет указывать тип метода, в нашем случае это "POST".
Атрибут action можем ставить, можем оставить просто пустым - будем обрабатывать запрос post на этой странице!
Поля ввода данных
Переходим к полям ввода данных - это может быть одинарный тег input, либо двойной textarea, далее рассмотрим input - это одинарный тег, у которого закрывающего тега нет:
У тега input должен быть атрибут "type", пусть это будет текстовое поле, поэтому тип будет "https://dwweb.ru/page/html/tags/015_type_text_html.htmtext":
Далее, чтобы получать из него данные с помощью php нам потребуется атрибут name. Не путать с якорем
Кнопка отправки запроса POST
Для отправки данных можно также использовать input, но и также можно использовать тег button, мы будем использовать
У кнопки отправки есть отдельный тип, который называется {submit}
Также как и в других input, добавляем сюда type,name,value
Соберем весь код формы для отправки запроса post.
Добавим еще одно поле с типом password - получится полноценная форма типа "авторизации".
<form method="post"
<input type="text" name="login"><br>
<input type="password" name="psw" ><br>
<input type="submit" name="send" value="ОТПРАВИТЬ" /><br>
</form>
Форму выведем ниже!
Далее нам нужно переданные данные из этой формы обработать!
Как получать данные отправленные методом POST
Форму для отправки "методом POST" мы разобрали выше пунктом и на основе этой формы, приступим к получению данных из неё!
Для того, чтобы получить данные переданные с помощью метода post нам понадобится:
Приступим к обработке переданных данных, нам нужно условие, по которому будем проверять, отправлен ли "post запрос" - это условие if, после него пишем двойные круглые скобки "
Для данного поля условие получения данных будет таким:
После круглых скобок ставим фигурные "
Полностью можем собрать получение пост запроса из этого input-a :
Тоже самое делаем со вторым полем ввода:
Мы рассмотрели два поля ввода!
Но ведь у нас есть кнопка отправить!
Для данной кнопки можно составить тоже условие и уже внутрь поместить два условия о которых мы сказали выше.
Это будет проверка на отправку данных, т.е. была ли нажата кнопка submit:
<?
if($_POST["submit"])
{
if($_POST["login"]){$login = strip_tags($_POST["login"]);}
if($_POST["psw"]){$pass= strip_tags($_POST["psw"]);}
}
?>
После того, как мы разобрались в форме и способе получения данных "методом post" - перейдем к практическим действиям!
Живой пример отправки данных методом POST
Не будем повторять, что уже было сказано, лишь посмотрим на некоторые изменения, которые я внес в форму, чтобы она работала так, как мне нужно здесь.
Чтобы вы не ходили в поисках результата, нам потребуется вернуться к нашему результату в этом пункте, поэтому нам понадобится якорь
В форме в атрибуте
И для вывода переданных данных используем echo, использовали два типа кавычек ' и "
$login = '. strip_tags ( $_POST['login'] ).' <br>
$psw = '. strip_tags ( $_POST['psw'] ).'</div>';
Полный код выше идущей формы с php обработчиком пост запроса!
<a name="example"></a>
<?
if($_POST['send'])
{
echo '<div class="kod"><span style="color: red;">Вы ввели данные: </span><br>
$login = '. strip_tags ( $_POST['login'] ).' <br>
$psw = '. strip_tags ( $_POST['psw'] ).'</div>';
}
?>
<form method="post"
<input type="text" name="login"><br>
<input type="password" name="psw" ><br>
<input type="submit" name="send" value="ОТПРАВИТЬ" /><br>
</form>
<style>
.kod {
display: block;
background: #fbfbfb;
margin: 20px 0 10px 0;
padding: 20px;
border: 1px solid #a7a7a7;
font-size: 14px;
word-break: break-word;
}
</style>
Введите какие-то данные в поля ввода и нажмите отправить:
Как отправить POST запрос на другую страницу!?
Первое! Откройте страницу и посмотрите, что там написано!
Теперь наберите текст и отправьте данные...методом post? на другую страницу:
Как работает отправка post запроса на другую страницу!?
Нам понадобится опять форма для отправки каких-то данных:
+ использовали тип hidden(скрытое поле), в котором отправляем ссылку(прост пример...)
В
<form method="post"
<input type="text" name="send_var" required>
<input type="hidden" name="url" value="https://dwweb.ru/page/php/method/001_php_post.html#paragraph_post_zapros_na_druguyu_stranitsu" >
<input type="submit" name="send_2" value="ОТПРАВИТЬ" >
</form>
Код страницы для приема post запроса
На странице для приема данных переданных через post делаем все абсолютно аналогично, что и выше было рассказано! Создаем условия и проверяем были ли переданы данные методом post!
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Пример страницы для приема пост запроса</title>
</head>
<body>
<?
if($_POST['send_2'])
{
$vivod = '<div class="kod"><span style="color: red;">Вы отправили данные: </span><br>
$send_var = '. strip_tags ( $_POST['send_var'] ).' <br>
$url = '. strip_tags ( $_POST['url'] ).'</div>
Post запрос был отправлен <a href="'.strip_tags ( $_POST['url'] ).'">со страницы</a>';
echo $vivod ;
}
else
{
echo 'Вы здесь ничего не увидите, пока не отправить пост запрос со страницы <a href="https://dwweb.ru/page/php/method/001_php_post.html#paragraph_post_zapros_na_druguyu_stranitsu">со страницы</a>';
}
?>
</body>
</html>
Получить POST запрос в переменную!?
Для того, чтобы получить "POST запрос" в переменную, вам понадобится:
Форма о которой мы уже говорили.
Далее нам нужно получить данные из формы.
По условию, внутри условия присваиваем переменной полученные данные.
Форма с передачей POST запроса" в переменную.
Чуть-чуть изменим выше приведенную форму и у нас получится, что мы передали "POST запрос" в переменную!
Если вы её(переменную) не нашли, то это<?
if($_POST['send'])
{
$var = '<div class="kod"><span style="color: red;">Вы ввели данные: </span><br>
$login = '. strip_tags ( $_POST['login'] ).' <br>
$psw = '. strip_tags ( $_POST['psw'] ).'</div>';
}
echo $var;
?>
<form method="post"
<input type="text" name="login"><br>
<input type="password" name="psw" ><br>
<input type="submit" name="send" value="ОТПРАВИТЬ" /><br>
</form>
Передача переменных между страницами post
Это тоже самое, что мы уже рассматривали , только поисковый запрос отличается!
Для того, чтобы передать переменную с одной страницы на другую с помощью post, нужно:
в форме в атрибуте
Открываем страницу "example.php", и создаем те условия, которые мы уже неоднократно показывали!:
У вас должно получиться, что-то в виде этого:
Если нужно вывести переменную "$var" на экран, то воспользуйтесь функцией echo
<?
if($_POST["psw"]){$var = strip_tags($_POST["psw"]);}
echo $var;
?>
<form method="post"
<input type="text" name="login"><br>
<input type="password" name="psw" ><br>
<input type="submit" name="send" value="ОТПРАВИТЬ" /><br>
</form>