Формуляр за регистрация на PHP с използване на методи GET, POST с пример
Какво е форма?
Когато влезете в уебсайт или в пощенската си кутия, вие взаимодействате с формуляр.
Формулярите се използват за получаване на входни данни от потребителя и изпращането им на уеб сървъра за обработка.
Диаграмата по-долу илюстрира процеса на обработка на формуляра.
Формулярът е HTML таг, който съдържа елементи от графичния потребителски интерфейс като поле за въвеждане, полета за отметка, радио бутони и др.
Формата се определя с помощта на … таговете и GUI елементите се дефинират с помощта на елементи на формуляра като input.
Кога и защо използваме формуляри?
- Формулярите са полезни при разработването на гъвкави и динамични приложения, които приемат въвеждане от потребителя.
- Формулярите могат да се използват за редактиране на вече съществуващи данни от базата данни
Създайте формуляр
Ще използваме 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 адрес и типа на изпращане.
- Име/Фамилия: са етикети за полетата за въвеждане
- са тагове на полето за въвеждане
- е тагът за нов ред
- е скрита стойност, която се използва за проверка дали формулярът е изпратен или не
- е бутонът, който при натискане изпраща формата на сървъра за обработка
Изпращане на данните от формуляра към сървъра
Атрибутът за действие на формуляра указва URL адреса за подаване, който обработва данните. Атрибутът на метода указва типа на изпращане.
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
| ПУСНИ | GET |
|---|---|
| Стойностите не се виждат в URL адреса | Стойности, видими в URL адреса |
| Няма ограничение за дължината на стойностите, тъй като те се изпращат чрез тялото на HTTP | Има ограничение за дължината на стойностите обикновено 255 знака. Това е така, защото стойностите се показват в URL адреса. Имайте предвид, че горната граница на знаците зависи от браузъра. |
| Има по-ниска производителност в сравнение с метода Php_GET поради времето, прекарано в капсулиране на стойностите на Php_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="/bg/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_fobmitted не е попълнено в масива $_POST[], формулярът се показва.
Още примери
Проста търсачка
Ще проектираме проста търсачка, която използва метода PHP_GET като тип за изпращане на формуляр.
За по-голяма простота ще използваме a 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="/bg/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, след което щракнете върху бутона за изпращане и вижте какви резултати ще получите.
Работа с отметки, радио бутони
Ако потребителят не избере квадратче за отметка или бутон за избор, не се изпраща стойност, ако потребителят избере квадратче за отметка или бутон за избор, се изпраща стойността one (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="/bg/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>
Вижте горния формуляр в браузър
Попълнете собственото и фамилното име
Имайте предвид, че квадратчето за отметка „Приемам условията за ползване“ не е избрано.
Кликнете върху бутона за изпращане
Ще получите следните резултати
Кликнете върху връзката обратно към формуляра и след това поставете отметка в квадратчето
Кликнете върху бутона за изпращане
Ще получите следните резултати
Oбобщение
- Формулярите се използват за получаване на данни от потребителите
- Формулярите се създават с помощта на HTML тагове
- Формулярите могат да бъдат изпратени на сървъра за обработка чрез метода POST или GET
- Стойностите на формуляра, изпратени чрез метода POST, се капсулират в тялото на HTTP.
- Стойностите на формуляра, изпратени чрез метода GET, се добавят и показват в URL адреса.










