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

Что такое Форма?
Когда вы заходите на веб-сайт или в свою почтовую ячейку, вы взаимодействуете с формой.
Формы используются для получения входных данных от пользователя и отправки их на веб-сервер для обработки.
На диаграмме ниже показан процесс обработки формы.
Форма — это 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.
Обработка данных регистрационной формы
Форма регистрации отправляет данные самой себе, как указано в атрибуте действия формы.
После отправки формы значения заполняют суперглобальный массив $_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>
Просмотрите приведенную выше форму в браузере.
Укажите имя и фамилию.
Обратите внимание, что флажок «Принять условия обслуживания» не установлен.
Нажмите на кнопку отправки.
Вы получите следующие результаты.
Нажмите на ссылку «Назад к форме», затем поставьте галочку в соответствующем поле.
Нажмите на кнопку отправки.
Вы получите следующие результаты.










