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

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

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

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

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

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'» — это URL имя переменной.

PHP-метод GET

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

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

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

ВОТ,

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

GET и POST методы

POST ПОЛУЧИТЬ
Значения, не отображаемые в URL Значения, отображаемые в URL
Не имеет ограничения длины значений, поскольку они передаются через тело HTTP. Существует ограничение на длину значений, обычно 255 символов. Это связано с тем, что значения отображаются в... URLОбратите внимание, что верхний предел количества символов зависит от браузера.
Имеет более низкую производительность по сравнению с методом Php_GET из-за затрат времени на инкапсуляцию значений Php_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="/ru/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_submit в массиве $_POST[] и отображает сообщение с благодарностью и именем.

    Если поле form_fobrated в массиве $_POST[] не заполнено, форма отображается.

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

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

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

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

Мы будем использовать тот же 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="/ru/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="/ru/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>

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

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

Заполните имя и фамилию

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

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

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

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

Нажмите ссылку «Назад на форму», а затем установите флажок.

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

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

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

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

Резюме

  • Формы используются для получения данных от пользователей.
  • Формы создаются с использованием HTML-тегов.
  • Формы могут быть отправлены на сервер для обработки с использованием метода POST или GET.
  • Значения формы, отправленные с помощью метода POST, инкапсулируются в тело HTTP.
  • Значения, отправленные через метод GET, добавляются и отображаются в форме. URL.

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