Обработка форм PHP
- Предыдущая страница Суперглобальные переменные PHP
- Следующая страница Валидация форм PHP
Суперглобальные переменные PHP $_GET и $_POST используются для сбора данных формы (form-data).
PHP - простая HTML-форма
Пример ниже показывает простую HTML-форму, которая содержит два поля ввода и кнопку отправки:
Пример
<html> <body> <form action="welcome.php" method="post"> Имя: <input type="text" name="name"><br> Электронная почта: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
Когда пользователь заполняет эту форму и нажимает кнопку "Отправить", данные формы отправляются в PHP-файл с именем "welcome.php" для обработки. Форменные данные отправляются методом HTTP POST.
Чтобы отобразить отправленные данные, можно просто вывести (echo) все переменные. Файл "welcome.php" выглядит так:
<html> <body> Добро пожаловать <?php echo $_POST["name"]; ?><br> Ваш адрес электронной почты: <?php echo $_POST["email"]; ?> </body> </html>
Вывод:
Добро пожаловать Bill Ваш адрес электронной почты: Bill.Gates@example.com
С помощью метода HTTP GET можно получить аналогичный результат:
Пример
<html> <body> <form action="welcome_get.php" method="get"> Имя: <input type="text" name="name"><br> Электронная почта: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
"welcome_get.php" выглядит так:
<html> <body> Добро пожаловать <?php echo $_GET["name"]; ?><br> Ваш адрес электронной почты: <?php echo $_GET["email"]; ?> </body> </html>
Код очень прост. Однако, наиболее важный момент был упущен. Вам нужно проверять данные формы, чтобы防止 уязвимости скрипта.
Примечание:Обратите внимание на безопасность при обработке PHP-форм!
На этой странице не включен никакой код проверки форм, он только демонстрирует, как отправлять и принимать данные форм.
Однако в последующих разделах мы расскажем, как повысить безопасность PHP-форм! Проведение надлежащей безопасности для форм очень важно для защиты от атак хакеров и спама!
GET vs. POST
GET и POST создают массивы (например, array( key => value, key2 => value2, key3 => value3, ...)). Этот массив содержит пары ключ/значение, где ключ - имя элемента формы, а значение - данные ввода пользователя.
GET и POST рассматриваются как $_GET и $_POST. Это суперглобальные переменные, что означает, что доступ к ним не зависит от области видимости - не требуется никакого специального кода, вы можете получить к ним доступ из любого функции, класса или файла.
$_GET - это массив переменных, переданных в текущий скрипт через параметры URL.
$_POST - это массив переменных, переданных в текущий скрипт через HTTP POST.
Когда использовать GET?
Информация, отправленная с формы через метод GETВидно для всех(Все имена переменных и значения будут отображаться в URL). GET имеет ограничения на количество передаваемой информации. Ограничение составляет около 2000 символов. Однако, так как переменные отображаются в URL, добавление страницы в закладки также становится более удобным.
GET можно использовать для отправки нечувствительных данных.
Комментарий:Никогда не используйте GET для отправки паролей или другой конфиденциальной информации!
Когда использовать POST?
Информация, отправленная с формы через метод POSTНевидимо для других(Все имена/значения будут включены в тело HTTP-запроса), и также есть ограничения на количество передаваемой информацииНеограниченно.
Кроме того, POST поддерживает более сложные функции, такие как multi-part binary input при загрузке файлов на сервер.
Однако, так как переменные не отображаются в URL, страницу также нельзя добавить в закладки.
Совет:Разработчики предпочитают использовать POST для отправки данных форм.
Давайте теперь посмотрим, как безопасно обрабатывать формы PHP!
- Предыдущая страница Суперглобальные переменные PHP
- Следующая страница Валидация форм PHP