PHP5 PHP Формы
РНР суперглобальных массивах $_GET и $_POST используются для сбора данных.
PHP Простая форма HTML
В примере ниже показывается простая форма HTML с двумя полями ввода и кнопкой отправки:
Пример
<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.
Чтобы отобразить представленные данные, можно вывести все переменные с помощью echo
.
Файл "welcome.php" выглядит так:
<html>
<body>
Привет: <?php echo $_POST["name"]; ?><br>
E-mail: <?php echo $_POST["email"]; ?>
</body>
</html>
Выход может быть что-то вроде этого:
Привет: Андрей
E-mail: and-shhipunov@mail.ru
Тот же результат, также может быть достигнут с помощью метода HTTP GET:
Пример
<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>
E-mail: <?php echo $_GET["email"]; ?>
</body>
</html>
Приведенный выше код довольно прост. Однако самое главное отсутствует. Вам потребуется проверка данных формы для защиты скрипта от вредоносного кода.
Подумайте о безопасности при обработке PHP форм!
Эта страница не содержит никакой проверки формы, она просто показывает, как можно отправить и извлечь данные формы.
Тем не менее, на следующих страницах будет показано, как обработать формы PHP с учетом безопасности! Правильная проверка данных формы важна чтобы защитить форму от хакеров и спамеров!
GET vs. POST
В GET и POST создаем массив например, array( key => value,
key2 => value2, key3 => value3, ...)
. Массив содержит пару Ключ/Значение, где
key
- это имена элементов управления формы, а value
- входные данные от пользователя.
GET и POST рассматриваются как $_GET
и $_POST
.
Эти суперглобальные переменные, означают, что они всегда доступны, независимо от объема, к ним можно получить доступ из любой функции,
класса или файла, без необходимости делать что-то особенное.
$_GET
массив переменных, передается скрипту через параметры URL.
$_POST
массив переменных, передается скрипту через метод HTTP POST.
Когда использовать GET?
Информация, отправляемая из формы методом GET видна каждому (все имена и значения переменных отображаются в URL). GET также имеет ограничения по объему информацию для отправки. Ограничение составляет около 2000 символов. Однако, поскольку переменные отображаются в URL-адресе, можно добавить страницу в закладки. Что может пригадиться в некоторых случаях.
GET можно использоваться для отправки конфиденциальных данных.
Внимание: GET никогда не следует использовать для отправки паролей или другой конфиденциальной информации!
Когда использовать POST?
Информация, отправленная из формы методом POST невидна для других (все имена/значения являются встроенные в тело HTTP запроса) и не имеет ограничений о количестве информации для отправки.
Кроме того POST поддерживает расширенные функции, такие как поддержка нескольких частей двоичных вводов при загрузке файлов на сервер.
Однако, поскольку переменные не отображаются в URL адрес, невозможно добавить страницу в закладки.
Разработчики предпочитают POST для отправки данных формы.
Далее, посмотрим, как можно обрабатывать PHP формы безопасным способом!