Обработка форм PHP
Суперглобальные переменные PHP $_GET и $_POST используются для сбора данных формы.
PHP — простая HTML-форма
В приведенном ниже примере показана простая HTML-форма с двумя полями ввода и кнопкой отправки:
Пример
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Когда пользователь заполняет форму выше и нажимает кнопку отправки, данные формы отправляются для обработки в файл PHP с именем «welcome.php». Данные формы отправляются методом HTTP POST.
Чтобы отобразить отправленные данные, вы можете просто повторить все переменные. "welcome.php" выглядит так:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Вывод может быть примерно таким:
Welcome John
Your email address is [email protected]
Тот же результат может быть достигнут с помощью метода HTTP GET:
Пример
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
и "welcome_get.php" выглядит так:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Приведенный выше код довольно прост. Однако самого главного не хватает. Вам необходимо проверить данные формы, чтобы защитить скрипт от вредоносного кода.
Думайте о БЕЗОПАСНОСТИ при обработке PHP-форм!
Эта страница не содержит никакой проверки формы, она просто показывает, как вы можете отправлять и получать данные формы.
Однако на следующих страницах будет показано, как обрабатывать PHP-формы с учетом требований безопасности! Правильная проверка данных формы важна для защиты вашей формы от хакеров и спамеров!
ПОЛУЧИТЬ или ПОЧТОВАТЬ
И GET, и POST создают массив (например, массив (key1 => value1, 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 поддерживает расширенные функции, такие как поддержка многокомпонентного двоичного ввода при загрузке файлов на сервер.
Однако, поскольку переменные не отображаются в URL-адресе, добавить страницу в закладки невозможно.
Разработчики предпочитают POST для отправки данных формы.
Далее давайте посмотрим, как мы можем безопасно обрабатывать PHP-формы!