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 formuláře dělají: HTML formulář shromažďuje uživatelské vstupy prostřednictvím polí, jako jsou textová pole, zaškrtávací políčka a tlačítka, a poté je odesílá do serverového skriptu.
  • 📬 Metoda POST: $_POST odesílá hodnoty v těle HTTP, keeping je ven z URL, což vyhovuje přihlašovacím údajům a citlivým údajům.
  • 🔗 GET metoda: $_GET připojuje hodnoty k URL, takže výsledky lze uložit do záložek, což je ideální pro vyhledávací formuláře.
  • 🇧🇷 POST vs. GET: POST nemá žádné praktické omezení délky a podporuje mnoho datových typů; GET je kratší, obsahuje pouze řetězce a je viditelný.
  • (Tj. Zpracování vstupu: Funkce isset() kontroluje, zda bylo pole odesláno předtím, než skript přečte, a použije jeho hodnotu.
  • ☑️ Zaškrtávací políčka: Zaškrtávací políčko odesílá hodnotu pouze tehdy, je-li zaškrtnuto, takže isset() potvrzuje, zda uživatel souhlasil s danou možností nebo ji vybral.
  • 🤖 AI Assist: Nástroje umělé inteligence dokáží vygenerovat ověřený a zabezpečený formulář a pomoci diagnostikovat, proč se formulář neodesílá správně.

Zpracování formulářů v PHP

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ář PHP

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ář.

Vytvořte 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.

Metody GET vs POST

Metody GET vs 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ář.

Jednoduchý vyhledávač

Napište GET velkými písmeny a poté klikněte na tlačítko Odeslat.

Bude zobrazeno následující.

Jednoduchý vyhledávač

Níže uvedený diagram znázorňuje URL pro výše uvedené výsledky.

Jednoduchý vyhledávač

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.

Práce se zaškrtávacími políčky, přepínač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.

Práce se zaškrtávacími políčky, přepínači

Klikněte na odkaz zpět na formulář a poté zaškrtněte políčko.

Práce se zaškrtávacími políčky, přepínači

Klikněte na tlačítko Odeslat.

Získáte následující výsledky.

Práce se zaškrtávacími políčky, přepínači

Nejčastější dotazy

$_GET čte hodnoty z URL řetězec dotazu, $_POST čte hodnoty z těla požadavku a $_REQUEST slučuje data GET, POST a cookie. Upřednostňujte konkrétní pole, abyste přesně věděli, odkud hodnota pochází.

Nikdy nedůvěřujte nezpracovanému vstupu. Ověřte platnost každého pole pomocí filter_var() nebo pravidel a výstup escapujte pomocí htmlspecialchars() pro zastavení XSS. Pro zápis do databáze používejte připravené příkazy, abyste zabránili SQL injection.

Mezi běžné příčiny patří metoda formuláře GET místo POST, chybějící atributy name na vstupech, nesprávná akce. URL, nebo chybějící vícedílný enctype pro nahrávání souborů. Zkontrolujte každý z těchto parametrů ve formuláři.

Ano. Umělá inteligence dokáže vytvořit HTML formulář a navíc validaci na straně serveru, ochranu CSRF a escapovaný výstup. RevPřed nasazením si prohlédněte pravidla pro každé pole a ověřte, zda bezpečnostní kontroly odpovídají vaší aplikaci.

Ano. Sdílejte formulář a obslužnou rutinu a umělá inteligence dokáže odhalit neshodu metod, chybějící atribut name, nesprávnou cestu k akci nebo větev ověření, která blokuje odeslání, a poté navrhnout opravu.

Shrňte tento příspěvek takto: