freeCodeCamp/guide/russian/php/php-form-handling/index.md

5.9 KiB
Raw Blame History

title localeTitle
PHP 5 Form Handling Обработка форм PHP 5

Суперграфы 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 john.doe@example.com 

Тот же результат может быть достигнут с использованием метода 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

И 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 поддерживает расширенные функции, такие как поддержка многочастного двоичного ввода при загрузке файлов на сервер.

Однако, поскольку переменные не отображаются в URL-адресе, закладка страницы невозможно.

Разработчики предпочитают POST для отправки данных формы.