Registrační formulář PHP pomocí metod GET, POST s příkladem

Co je Forma?

Když se přihlásíte na web nebo do své e-mailové schránky, komunikujete 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 značka HTML, která obsahuje položky grafického uživatelského rozhraní, jako je vstupní pole, přepínače zaškrtávacích políček atd.

Formulář je definován pomocí … tagy a položky GUI jsou definovány pomocí prvků formuláře, jako je vstup.

Kdy a proč formuláře používáme?

  • Formuláře přijdou vhod při vývoji flexibilních a dynamických aplikací, které přijímají uživatelské vstupy.
  • 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
  • Adresa URL odeslání, která zpracuje odeslaná data
  • Vstupní pole, jako jsou vstupní pole, textové oblasti, tlačítka, zaškrtávací políčka atd.

Níže uvedený 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ílovou adresu URL a typ odeslá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 akce formuláře určuje adresu URL odeslání, která zpracovává data. Atribut method určuje typ odeslání.

Metoda PHP POST

  • Toto je vestavěná proměnná super globálního pole PHP, která se používá k získání hodnot odeslaných pomocí metody 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í, když nechcete v adrese URL zobrazovat hodnoty příspěvku formuláře.
  • 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 proměnné adresy URL.

Metoda PHP GET

  • Toto je vestavěná super globální proměnná pole PHP, která se používá k získání hodnot odeslaných pomocí metody HTTP GET.
  • K proměnné pole lze přistupovat z libovolného skriptu v programu; má globální působnost.
  • Tato metoda zobrazí hodnoty formuláře v adrese URL.
  • Je ideální pro formuláře vyhledávačů, protože umožňuje uživatelům označit si výsledky.

Má následující syntaxi.

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

TADY,

  • „$_GET[…]“ je pole PHP
  • „'název_proměnné'“ je název proměnné adresy URL.

Metody GET vs POST

POST GET
Hodnoty nejsou v adrese URL viditelné Hodnoty viditelné v URL
Nemá omezení délky hodnot, protože jsou odesílány prostřednictvím těla HTTP Má omezení na délku hodnot obvykle 255 znaků. Je to proto, že hodnoty jsou zobrazeny v URL. Všimněte si, že horní limit znaků závisí na prohlížeči.
Má nižší výkon ve srovnání s metodou Php_GET kvůli času strávenému zapouzdřením hodnot Php_POST v těle HTTP Má vysoký výkon ve srovnání s metodou POST díky jednoduché povaze připojení hodnot v URL.
Podporuje mnoho různých datových typů, jako jsou řetězcové, číselné, binární atd. Podporuje pouze datové typy řetězců, protože hodnoty jsou zobrazeny v adrese URL
Výsledky nelze zaknihovat Výsledky mohou být označeny jako kniha kvůli 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 vyplní do super globá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 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="/cs/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 jménem.

    Pokud pole form_fobmitted nebylo vyplněno v poli $_POST[], zobrazí se formulář.

Další příklady

Jednoduchý vyhledávač

Navrhneme jednoduchý vyhledávač, který jako typ odeslání formuláře používá metodu PHP_GET.

Pro jednoduchost použijeme a Příkaz PHP If 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="/cs/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 výše uvedenou stránku ve webovém prohlížeči

Zobrazí se následující formulář

Jednoduchý vyhledávač

Zadejte velkými písmeny GET a klikněte na tlačítko Odeslat.

Zobrazí se následující

Jednoduchý vyhledávač

Níže uvedený diagram ukazuje adresu URL pro výše uvedené výsledky

Jednoduchý vyhledávač

Všimněte si, že adresa URL zobrazuje hodnotu search_term a form_submitted. Zkuste zadat něco jiného než GET, poté klikněte na tlačítko Odeslat a uvidíte, jaké výsledky získáte.

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

Pokud uživatel nezaškrtne políčko nebo přepínač, nebude odeslána žádná hodnota, pokud uživatel zaškrtne políčko nebo přepínač, odešle se hodnota jedna (1) nebo true.

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="/cs/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>

Prohlédněte si výše uvedený formulář v prohlížeči

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

Vyplňte 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 zpět na odkaz formuláře 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

Shrnutí

  • Formuláře slouží k získávání dat od uživatelů
  • Formuláře jsou vytvářeny pomocí HTML tagů
  • Formuláře lze odeslat na server ke zpracování pomocí metody POST nebo GET
  • Hodnoty formuláře odeslané pomocí metody POST jsou zapouzdřeny v těle HTTP.
  • Hodnoty formuláře odeslané pomocí metody GET jsou připojeny a zobrazeny v URL.