PHP - Простая HTML-форма
Суперглобальные переменные PHP
$_GET и
$_POST используются для сбора данных из форм.
В приведённом ниже примере показана простая HTML-форма с двумя полями ввода и кнопкой отправки:
Пример
HTML-форма с method="post":
<html>
<body>
<form action="welcome.php" method="post">
Имя: <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>
Добро пожаловать <?php echo $_POST["name"]; ?><br>
Ваш адрес электронной почты: <?php echo $_POST["email"]; ?>
</body>
</html>
Результат может выглядеть примерно так:
Добро пожаловать Иван
Ваш адрес электронной почты: ivan@example.com
Тот же результат можно получить, используя HTTP-метод GET:
Пример
Тот же пример, но метод установлен в "get" вместо "post":
<html>
<body>
<form action="welcome_get.php" method="get">
Имя: <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>
Добро пожаловать <?php echo $_GET["name"]; ?><br>
Ваш адрес электронной почты: <?php echo $_GET["email"]; ?>
</body>
</html>
Приведённый выше код довольно прост и не включает никакой проверки формы.
Вам необходимо проверять данные формы, чтобы защитить свой скрипт от вредоносного кода!
Думайте о БЕЗОПАСНОСТИ при обработке PHP-форм!
Эта страница не содержит проверки формы, она лишь показывает, как вы можете отправлять и получать данные формы.
Однако на следующих страницах будет показано, как обрабатывать PHP-формы с учётом безопасности! Правильная проверка данных формы важна для защиты вашей формы от хакеров и спамеров!
GET против POST
И GET, и POST создают массив (например, array( ключ1 => значение1, ключ2 => значение2, ключ3 => значение3, ...)). Этот массив содержит пары ключ/значение, где ключи — это имена элементов управления формы, а значения — введённые пользователем данные.
И GET, и POST обрабатываются как $_GET и $_POST. Это суперглобальные переменные, что означает, что они всегда доступны независимо от области видимости, и вы можете получить к ним доступ из любой функции, класса или файла без каких-либо специальных действий.
$_GET — это массив переменных, переданных текущему скрипту через параметры строки запроса URL.
$_POST — это массив переменных, переданных текущему скрипту через HTTP-метод POST.
Когда использовать GET?
Информация, отправленная из формы с помощью метода GET, видна всем (все имена переменных и значения отображаются в URL). GET также имеет ограничения на объём отправляемой информации. Ограничение составляет около 2000 символов. Однако, поскольку переменные отображаются в URL, страницу можно добавить в закладки. Это может быть полезно в некоторых случаях.
GET можно использовать для отправки нечувствительных данных.
Примечание: GET НИКОГДА не следует использовать для отправки паролей или другой конфиденциальной информации!
Когда использовать POST?
Информация, отправленная из формы с помощью метода POST, невидима для других (все имена/значения встроены в тело HTTP-запроса) и не имеет ограничений на объём отправляемой информации.
POST также поддерживает расширенные возможности, такие как поддержка многочастного двоичного ввода при загрузке файлов на сервер.
Однако, поскольку переменные не отображаются в URL, невозможно добавить страницу в закладки.
Разработчики предпочитают POST для отправки данных форм.
Далее посмотрим, как безопасно обрабатывать PHP-формы!