Урок 9. Что такое метод POST в PHP или как обработать форму?
Coding
Одна из самых важных и популярных задач в PHP - передача данных. Вы, наверное, не раз сталкивались с url вроде site.ru/page.php?id=114841 или формой с полями ввода текста (регистрация, новый комментарий и тд). В этом и следующем уроках поговорим об передаче данных в PHP.
Метод POST в PHP
Метод состоит из двух частей: HTML c формой и полями и файла-обработчика на PHP.
Внимание! Для работы нам достаточно создать соответственно всего два файла.
Рассмотрим пример с комментариями - реализация авторизации пользователя на сайте :
Код HTML (файл post.html)
<html> <head> <title>Форма</title> </head> <body> <!-- В form в атрибуте name указывается название формы и в будущем массива --> <!-- В action название файла обработчика --> <!-- В method указываем способ передачи post --> <form name = 'myform' action = 'test_reg.php' method = 'post'> Ваш логин: <input type = 'text' name = 'login' /> Ваш пароль: <input type = 'password' name = 'pass' /> <input type = 'submit' value = 'Войти' /> </form> </body> </html>
Теперь подробнее о методах передачи данных. Существует два вида GET (через url, открытый - можно изменить url вручную) и POST (через форму, закрытый). Отличие будет заключаться в содержании адресной строки, то есть url.
При получении данных переданных одним из этих способов в массив соответствующего методу типа ($_GET или $_POST) собираются данные. Также существует массив $_REQUEST, который может содержать и $_GET, и $_POST одновременно. Но это для других примеров. Рекомендую большинство данных передавать методом POST.
Теперь рассмотрим код обработчика.
Код PHP (в файле test_reg.php)
<?php $login = $_POST['login']; // принимаем данные отправленные POST $pass = $_POST['pass']; // login и pass - это name полей ввода if (($login == "Admin") && ($pass == "Pass")) echo "Здравствуйте, Admin! Сегодня кофе или чай?)"; else echo "Вы ввели неверную связку логин-пароль. Попробуйте ещё <a href='post.html'>Назад</a>"; ?>
Вы можете видеть как в отдельные переменные мы записываем значение полей с соответствующими name в массиве $_POST, хотя также можно было собрать и в $_REQUEST.
В обработчике, пожалуй, проработаем условие авторизации - совпадают ли логин и пароль в форме с нашим выдуманным (соответственно Admin и Pass). И либо поздороваемся с входящим (Здравствуйте, Admin! Сегодня кофе или чай?), либо нет (Вы ввели неверную связку логин-пароль. Попробуйте ещё). Однако для создания полноценной авторизации Вам ещё надо ознакомиться с cookies, сессиями и базами данных. Но об этом позже.
Непосредственно в скрипте можно как угодно обрабатывать данные: дописывать, стирать, шифровать и так далее. Главное - это знать имя переменной (задаётся в HTML-форме) и дальше собирать их с помощью массивов $_POST, $_GET и $_REQUEST.