Обработка форм PHP
Добавить в избранноеСуперглобальные переменные PHP $_GET и $_POST используются для сбора данных формы.
PHP — простая HTML-форма
В приведенном ниже примере показана простая HTML-форма с двумя полями ввода и кнопкой отправки:
Пример:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP — простая HTML-форма</title>
</head>
<body>
<form action="welcome.php" method="post">
Имя: <br>
<input type="text" name="name"> <br>
E-mail: <br>
<input type="email" name="email"> <br>
<input type="submit">
</form>
</body>
</html>
Когда пользователь заполняет форму выше и нажимает кнопку отправки, данные формы отправляются для обработки в файл PHP с именем «welcome.php». Данные формы отправляются методом POST.
Чтобы отобразить отправленные данные, вы можете просто повторить все переменные. «welcome.php» выглядит следующим образом:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP — простая HTML-форма</title>
</head>
<body>
Добро пожаловать <?php echo $_POST["name"]; ?> <br>
Ваш адрес электронной почты: <?php echo $_POST["email"]; ?>
</body>
</html>
Вывод может быть примерно таким:
Добро пожаловать Кира
Ваш адрес электронной почты: kira@mail.ru
Того же результата можно добиться и с помощью метода GET:
Пример:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP — простая HTML-форма</title>
</head>
<body>
<form action="welcome_get.php" method="get">
Имя: <br>
<input type="text" name="name"> <br>
E-mail: <br>
<input type="email" name="email"> <br>
<input type="submit">
</form>
</body>
</html>
и «welcome_get.php» выглядит так:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP — простая HTML-форма</title>
</head>
<body>
Добро пожаловать <?php echo $_GET["name"]; ?> <br>
Ваш адрес электронной почты: <?php echo $_GET["email"]; ?>
</body>
</html>
Эта страница не содержит никакой проверки формы, она просто показывает, как вы можете отправлять и получать данные формы.
GET против POST
И GET, и POST создают массив (например, массив(ключ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 для отправки данных формы.