Registrační formulář PHP pomocí metod GET, POST s příkladem
⚡ Chytré shrnutí
Zpracování formulářů v PHP zachycuje uživatelský vstup z HTML formulářů a zpracovává ho na serveru pomocí superglobálních proměnných $_POST a $_GET. Tento návod vytvoří registrační formulář, vysvětlí metody POST a GET, porovná je a ukazuje, jak zpracovat pole, zaškrtávací políčka a vyhledávací vstup.

Co je Forma?
Když se přihlásíte na webovou stránku nebo do své poštovní schránky, interagujete s formulářem.
Formuláře se používají k získání vstupu od uživatele a jeho odeslání na webový server ke zpracování.
Níže uvedený diagram znázorňuje proces zpracování formuláře.
Formulář je HTML tag, který obsahuje prvky grafického uživatelského rozhraní, jako jsou vstupní pole, zaškrtávací políčka, přepínače a další.
Formulář je definován pomocí … Tagy a položky grafického rozhraní jsou definovány pomocí prvků formuláře, jako je například input.
Kdy a proč formuláře používáme?
- Formuláře se hodí při vývojiping flexibilní a dynamické aplikace, které přijímají vstupy od uživatele.
- Formuláře lze použít k úpravě již existujících dat z databáze.
Vytvořte formulář
K vytvoření formuláře použijeme HTML tagy. Níže je uveden minimální seznam věcí, které potřebujete k vytvoření formuláře.
- Otevírání a zavírání značek formuláře …
- Odeslání formuláře typu POST nebo GET
- Podání URL který bude zpracovávat odeslaná data
- Vstupní pole, jako jsou vstupní rámečky, textové oblasti, tlačítka, zaškrtávací políčka a podobně.
Následující kód vytvoří jednoduchý registrační formulář.
<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>
Zobrazením výše uvedeného kódu ve webovém prohlížeči se zobrazí následující formulář.
TADY,
- … jsou značky úvodního a závěrečného formuláře
- action=”registration_form.php” method=”POST” určuje cíl URL a typ podání.
- Jméno/Příjmení: jsou štítky pro vstupní pole
- jsou značky vstupního pole
- je nová značka řádku
- je skrytá hodnota, která se používá ke kontrole, zda byl formulář odeslán nebo ne
- je tlačítko, které po kliknutí odešle formulář na server ke zpracování
Odeslání dat formuláře na server
Atribut action formuláře určuje odeslání. URL který zpracovává data. Atribut method určuje typ odeslání.
Metoda PHP POST
- Toto je vestavěná superglobální proměnná pole v PHP, která se používá k získání hodnot odeslaných metodou HTTP POST.
- K proměnné pole lze přistupovat z libovolného skriptu v programu; má globální působnost.
- Tato metoda je ideální, pokud nechcete zobrazovat hodnoty příspěvku formuláře v URL.
- Dobrým příkladem použití metody POST je odesílání přihlašovacích údajů na server.
Má následující syntaxi.
<?php
$_POST['variable_name'];
?>
TADY,
- „$_POST[…]“ je pole PHP
- „'název_proměnné'“ je název pole formuláře.
Metoda PHP GET
- Toto je vestavěná superglobální proměnná pole v PHP, která se používá k získání hodnot odeslaných metodou HTTP GET.
- K proměnné pole lze přistupovat z libovolného skriptu v programu; má globální působnost.
- Tato metoda zobrazuje hodnoty formuláře v URL.
- Je ideální pro vyhledávací formuláře, protože umožňuje uživatelům ukládat výsledky do záložek.
Má následující syntaxi.
<?php
$_GET['variable_name'];
?>
TADY,
- „$_GET[…]“ je pole PHP
- „'název_proměnné'“ je URL název proměnné.
Metody GET vs POST
| POST | GET |
|---|---|
| Hodnoty, které nejsou viditelné v URL | Hodnoty viditelné v URL |
| Nemá žádné omezení délky hodnot, protože jsou odesílány prostřednictvím těla HTTP požadavku. | Má omezení délky hodnot, obvykle 255 znaků. Je to proto, že hodnoty se zobrazují v URLUpozorňujeme, že horní limit znaků závisí na prohlížeči. |
| Má nižší výkon ve srovnání s metodou GET kvůli času strávenému zapouzdřováním hodnot POST do těla HTTP. | Má vyšší výkon ve srovnání s metodou POST díky jednoduché povaze přidávání hodnot v URL. |
| Podporuje mnoho různých datových typů, jako jsou řetězcové, číselné, binární a další. | Podporuje pouze datové typy řetězců, protože hodnoty se zobrazují v URL |
| Výsledky nelze uložit do záložek | Výsledky lze uložit do záložek díky viditelnosti hodnot v URL |
Níže uvedený diagram ukazuje rozdíl mezi GET a POST.
Zpracování údajů registračního formuláře
Registrační formulář odešle data sama sobě, jak je uvedeno v atributu action formuláře.
Po odeslání formuláře se hodnoty naplní do superglobálního pole $_POST.
Pomocí funkce PHP isset zkontrolujeme, zda byly hodnoty formuláře vyplněny v poli $_POST a zpracujeme data.
Registrační formulář upravíme tak, aby obsahoval PHP kód, který zpracovává data. Níže je uveden upravený kód.
<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>
TADY,
- Zkontroluje, zda bylo v poli $_POST[] vyplněno skryté pole form_submitted, a zobrazí zprávu s poděkováním a křestním jménem. Pokud pole form_submitted v poli $_POST[] vyplněno nebylo, formulář se zobrazí.
Další příklady
Jednoduchý vyhledávač
Navrhneme jednoduchý vyhledávač, který používá metodu PHP GET jako typ pro odeslání formuláře.
Pro jednoduchost použijeme a Příkaz if v PHP k určení výstupu.
Pro výše uvedený registrační formulář použijeme stejný HTML kód a provedeme v něm minimální úpravy.
<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>
Zobrazte si výše uvedenou stránku ve webovém prohlížeči.
Zobrazí se následující formulář.
Napište GET velkými písmeny a poté klikněte na tlačítko Odeslat.
Bude zobrazeno následující.
Níže uvedený diagram znázorňuje URL pro výše uvedené výsledky.
Poznámka: URL zobrazuje hodnotu search_term a form_submitted. Zkuste zadat cokoli jiného než GET, poté klikněte na tlačítko Odeslat a podívejte se, jaké výsledky dostanete.
Práce se zaškrtávacími políčky, přepínači
Pokud uživatel nevybere zaškrtávací políčko nebo přepínač, neodešle se žádná hodnota. Pokud uživatel vybere zaškrtávací políčko nebo přepínač, odešle se hodnota jedna (1) nebo pravda.
Upravíme kód registračního formuláře a přidáme zaškrtávací tlačítko, které uživateli umožní souhlasit s podmínkami služby.
<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>
Zobrazte si výše uvedený formulář v prohlížeči.
Vyplňte křestní jméno a příjmení.
Všimněte si, že není zaškrtnuto políčko Souhlasím s podmínkami služby.
Klikněte na tlačítko Odeslat.
Získáte následující výsledky.
Klikněte na odkaz zpět na formulář a poté zaškrtněte políčko.
Klikněte na tlačítko Odeslat.
Získáte následující výsledky.










