Форма регистрации PHP с использованием методов GET, POST с примером

⚡ Умное резюме

В этом руководстве рассматривается обработка форм в PHP, которая включает ввод данных пользователем из HTML-форм и обрабатывает их на сервере с помощью суперглобальных переменных $_POST и $_GET. В нем показано, как создать форму регистрации, объясняются методы POST и GET, проводится их сравнение, а также демонстрируется обработка полей, флажков и поля поиска.

  • ???? Что делают формы: HTML-форма собирает данные от пользователя с помощью таких полей, как текстовые поля, флажки и кнопки, а затем отправляет их на серверный скрипт.
  • 📬 Почтовый метод: $_POST отправляет значения в теле HTTP-запроса, сохраняяping вывести их из URL, что подходит для авторизации и работы с конфиденциальными данными.
  • 🔗 ПОЛУЧИТЬ метод: $_GET добавляет значения к URLТаким образом, результаты можно добавлять в закладки, что идеально подходит для поисковых форм.
  • POST против GET: Метод POST не имеет практических ограничений по длине и поддерживает множество типов данных; метод GET короче, содержит только строки и виден пользователю.
  • Обработка входных данных: Функция isset() проверяет, было ли поле отправлено, прежде чем скрипт прочитает и использует его значение.
  • ☑️ Флажки: Флажок отправляет значение только тогда, когда он отмечен, поэтому функция isset() подтверждает, согласился ли пользователь или выбрал этот вариант.
  • 🤖 AI-помощь: Инструменты искусственного интеллекта могут генерировать проверенные и безопасные формы, а также помогать диагностировать причины некорректной отправки форм.

Обработка форм в PHP

Что такое Форма?

Когда вы заходите на веб-сайт или в свою почтовую ячейку, вы взаимодействуете с формой.

Формы используются для получения входных данных от пользователя и отправки их на веб-сервер для обработки.

На диаграмме ниже показан процесс обработки формы.

PHP-форма

Форма — это HTML-тег, содержащий элементы графического пользовательского интерфейса, такие как поля ввода, флажки, переключатели и многое другое.

Форма определяется с помощью … Теги и элементы графического интерфейса пользователя определяются с помощью элементов формы, таких как поля ввода.

Когда и почему мы используем формы?

  • Формы оказываются полезными при разработке.ping гибкие и динамичные приложения, принимающие ввод пользователя.
  • Формы позволяют редактировать уже существующие данные в базе данных.

Создать форму

Для создания формы мы будем использовать HTML-теги. Ниже приведен минимальный список вещей, необходимых для создания формы.

  • Открытие и закрытие тегов формы …
  • Тип отправки формы POST или GET
  • Представление URL которая обработает предоставленные данные
  • Поля ввода, такие как поля ввода, текстовые поля, кнопки, флажки и тому подобные.

Приведённый ниже код создаёт простую форму регистрации.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST"> First name:

<input type="text" name="firstname"> <br> Last name:

<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
</body>
</html>

При просмотре приведенного выше кода в веб-браузере отображается следующая форма.

Создать форму

ВОТ,

  • … это открывающий и закрывающий теги формы
  • action=”registration_form.php” method=”POST” указывает место назначения URL и тип заявки.
  • Имя/Фамилия: метки для полей ввода.
  • являются тегами поля ввода
  • это новый тег строки
  • это скрытое значение, которое используется для проверки того, была ли форма отправлена ​​или нет.
  • Это кнопка, при нажатии на которую форма отправляется на сервер для обработки.

Отправка данных формы на сервер

Атрибут action формы указывает на отправку формы. URL Этот метод обрабатывает данные. Атрибут method указывает тип отправки.

PHP-метод POST

  • Это встроенная в PHP суперглобальная переменная массива, используемая для получения значений, отправленных методом HTTP POST.
  • Доступ к переменной массива можно получить из любого сценария программы; он имеет глобальную область действия.
  • Этот метод идеально подходит, если вы не хотите отображать значения, полученные из формы, в самом тексте. URL.
  • Хорошим примером использования метода POST является отправка учетных данных на сервер.

Он имеет следующий синтаксис.

<?php
$_POST['variable_name'];
?>

ВОТ,

  • «$_POST[…]» — это Массив PHP
  • «'variable_name'» — это имя поля формы.

PHP-метод GET

  • Это встроенная суперглобальная переменная массива PHP, используемая для получения значений, отправленных методом HTTP GET.
  • Доступ к переменной массива можно получить из любого сценария программы; он имеет глобальную область действия.
  • Этот метод отображает значения формы в URL.
  • Это идеально подходит для форм поисковых систем, поскольку позволяет пользователям добавлять результаты в закладки.

Он имеет следующий синтаксис.

<?php
$_GET['variable_name'];
?>

ВОТ,

  • «$_GET[…]» — это массив PHP.
  • «'variable_name'» — это URL имя переменной.

GET и POST методы

POST ПОЛУЧИТЬ
Значения, не отображаемые в URL Значения, отображаемые в URL
Нет ограничений на длину значений, поскольку они передаются через тело HTTP-запроса. Существует ограничение на длину значений, обычно 255 символов. Это связано с тем, что значения отображаются в... URLОбратите внимание, что верхний предел количества символов зависит от браузера.
Этот метод демонстрирует более низкую производительность по сравнению с методом GET из-за времени, затрачиваемого на инкапсуляцию значений POST в теле HTTP-запроса. Обладает более высокой производительностью по сравнению с методом POST благодаря простоте добавления значений в запрос. URL.
Поддерживает множество различных типов данных, таких как строки, числа, двоичные данные и многое другое. Поддерживаются только строковые типы данных, поскольку значения отображаются в... URL
Результаты нельзя добавить в закладки. Результаты можно добавить в закладки благодаря наглядности значений. URL

На приведенной ниже диаграмме показана разница между методами GET и POST.

GET и POST методы

GET и POST методы

Обработка данных регистрационной формы

Форма регистрации отправляет данные самой себе, как указано в атрибуте действия формы.

После отправки формы значения заполняют суперглобальный массив $_POST.

Мы будем использовать функцию PHP isset, чтобы проверить, были ли заполнены значения формы в массиве $_POST, и обработать данные.

Мы внесем изменения в форму регистрации, чтобы добавить PHP-код, обрабатывающий данные. Ниже приведен измененный код.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>
<body>

<?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted

<h2>Thank You <?php echo $_POST['firstname']; ?> </h2>

<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>

<p>Go <a href="/registration_form.php">back</a> to the form</p>

<?php else: ?>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST">

First name:
<input type="text" name="firstname">

<br> Last name:
<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>

<?php endif; ?>
</body>
</html>

ВОТ,

  • Проверяет, заполнено ли скрытое поле form_submitted в массиве $_POST[], и отображает сообщение с благодарностью и именем. Если поле form_submitted не заполнено в массиве $_POST[], отображается форма.

Больше примеров

Простая поисковая система

Мы разработаем простую поисковую систему, которая будет использовать метод PHP GET в качестве типа формы для отправки данных.

Для простоты мы будем использовать оператор if в PHP чтобы определить выход.

Мы будем использовать тот же HTML-код для регистрационной формы, указанной выше, и внесем в него минимальные изменения.

<html>
<head>
<title>Simple Search Engine</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<?php if (isset($_GET['form_submitted'])): ?>

<h2>Search Results For <?php echo $_GET['search_term']; ?> </h2>
<?php if ($_GET['search_term'] == "GET"): ?>

<p>The GET method displays its values in the URL</p>

<?php else: ?>
<p>Sorry, no matches found for your search term</p>

<?php endif; ?>

<p>Go <a href="/search_engine.php">back</a> to the form</p>

<?php else: ?>

<h2>Simple Search Engine - Type in GET </h2>

<form action="search_engine.php" method="GET">

Search Term:
<input type="text" name="search_term">
<br>

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
<?php endif; ?>
</body>
</html>

Просмотрите указанную выше страницу в веб-браузере.

Будет показана следующая форма.

Простая поисковая система

Введите GET заглавными буквами, затем нажмите кнопку «Отправить».

Далее будет показано следующее.

Простая поисковая система

На приведенной ниже диаграмме показано URL для вышеуказанных результатов.

Простая поисковая система

Обратите внимание URL Отобразились значения параметров search_term и form_submitted. Попробуйте ввести любой текст, отличный от GET, затем нажмите кнопку «Отправить» и посмотрите, какие результаты получите.

Работа с флажками, радиокнопками

Если пользователь не выбирает флажок или переключатель, значение не отправляется. Если пользователь выбирает флажок или переключатель, отправляется значение один (1) или true.

Мы изменим код регистрационной формы и добавим кнопку проверки, которая позволит пользователю согласиться с условиями обслуживания.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php if (isset($_POST['form_submitted'])): ?>
<?php if (!isset($_POST['agree'])): ?>
<p>You have not accepted our terms of service</p>
<?php else: ?>
<h2>Thank You <?php echo $_POST['firstname']; ?></h2>
<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>
<p> Go <a href="/registration_form2.php">back</a> to the form</p>
<?php endif; ?>
<?php else: ?>
<h2>Registration Form</h2>
<form action="registration_form2.php" method="POST">
First name:
<input type="text" name="firstname">
<br> Last name:
<input type="text" name="lastname">
<br> Agree to Terms of Service:
<input type="checkbox" name="agree">
<br>
<input type="hidden" name="form_submitted" value="1" />
<input type="submit" value="Submit">
</form>
<?php endif; ?>
</body>
</html>

Просмотрите приведенную выше форму в браузере.

Работа с флажками, радиокнопками

Укажите имя и фамилию.

Обратите внимание, что флажок «Принять условия обслуживания» не установлен.

Нажмите на кнопку отправки.

Вы получите следующие результаты.

Работа с флажками, радиокнопками

Нажмите на ссылку «Назад к форме», затем поставьте галочку в соответствующем поле.

Работа с флажками, радиокнопками

Нажмите на кнопку отправки.

Вы получите следующие результаты.

Работа с флажками, радиокнопками

Часто задаваемые вопросы (FAQ)

$_GET считывает значения из URL В качестве параметра используется строка запроса, переменная $_POST считывает значения из тела запроса, а переменная $_REQUEST объединяет данные GET, POST и cookie. Предпочтительнее использовать конкретный массив, чтобы точно знать, откуда взялось значение.

Никогда не доверяйте необработанным входным данным. Проверяйте каждое поле с помощью функции filter_var() или правил, а выходные данные экранируйте с помощью htmlspecialchars(), чтобы предотвратить XSS-атаки. Используйте подготовленные запросы для записи в базу данных, чтобы предотвратить SQL-инъекции.

Распространенные причины: метод формы GET вместо POST, отсутствие атрибутов name у полей ввода, неправильное действие. URLили отсутствует тип шифрования multipart для загрузки файлов. Проверьте каждый из этих пунктов в вашей форме.

Да. Искусственный интеллект может создать HTML-форму, а также обеспечить проверку данных на стороне сервера, защиту от CSRF-атак и экранирование выходных данных. RevПросмотрите правила для каждого поля и убедитесь, что проверки безопасности соответствуют вашему приложению, прежде чем развертывать его.

Да. Предоставьте форму и обработчик, и ИИ сможет обнаружить несоответствие метода, отсутствующий атрибут имени, неправильный путь выполнения действия или ветвь проверки, блокирующую отправку, а затем предложить решение.

Подведем итог этой публикации следующим образом: