PHP-rekisteröintilomake GET-, POST-menetelmillä esimerkin kanssa
Mikä on muoto?
Kun kirjaudut sisään verkkosivustolle tai postilaatikkoosi, olet vuorovaikutuksessa lomakkeen kanssa.
Lomakkeita käytetään syötteiden vastaanottamiseen käyttäjältä ja lähettämiseen web-palvelimelle käsittelyä varten.
Alla oleva kaavio havainnollistaa lomakkeiden käsittelyprosessia.
Lomake on HTML-tunniste, joka sisältää graafisia käyttöliittymäkohteita, kuten syöttöruudun, valintaruutujen valintanapit jne.
Lomake määritetään käyttämällä … tagit ja GUI-kohteet määritellään käyttämällä lomakeelementtejä, kuten syötettä.
Milloin ja miksi käytämme lomakkeita?
- Lomakkeet ovat hyödyllisiä kehitettäessä joustavia ja dynaamisia sovelluksia, jotka hyväksyvät käyttäjän syötteen.
- Lomakkeilla voidaan muokata jo olemassa olevia tietokannan tietoja
Luo lomake
Käytämme HTML-tageja lomakkeen luomiseen. Alla on vähimmäisluettelo asioista, joita tarvitset lomakkeen luomiseen.
- Lomaketunnisteiden avaaminen ja sulkeminen …
- Lomakkeen lähetystyyppi POST tai GET
- Lähetyksen URL-osoite, joka käsittelee lähetetyt tiedot
- Syöttökentät, kuten syöttöruudut, tekstialueet, painikkeet, valintaruudut jne.
Alla oleva koodi luo yksinkertaisen rekisteröintilomakkeen
<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>
Yllä olevan koodin tarkastelu selaimessa näyttää seuraavan lomakkeen.
TÄSSÄ,
- … ovat avaus- ja sulkemislomakkeet
- action=”registration_form.php” method=”POST”> määrittää kohde-URL-osoitteen ja lähetystyypin.
- Etu-/sukunimi: ovat syöttöruutujen tarrat
- ovat syöttöruututunnisteita
- on uusi rivitunniste
- on piilotettu arvo, jota käytetään tarkistamaan, onko lomake lähetetty vai ei
- on painike, jota napsautettuna lähettää lomakkeen palvelimelle käsittelyä varten
Lomaketietojen lähettäminen palvelimelle
Lomakkeen action-attribuutti määrittää lähetyksen URL-osoitteen, joka käsittelee tiedot. Metod-attribuutti määrittää lähetyksen tyypin.
PHP POST -menetelmä
- Tämä on PHP:n sisäänrakennettu superglobaali taulukkomuuttuja, jota käytetään HTTP POST -menetelmällä lähetettyjen arvojen saamiseen.
- Taulukkomuuttujaa voidaan käyttää mistä tahansa ohjelman komentosarjasta; sillä on globaali ulottuvuus.
- Tämä menetelmä on ihanteellinen, kun et halua näyttää lomakkeen postausarvoja URL-osoitteessa.
- Hyvä esimerkki post-menetelmän käytöstä on kirjautumistietojen lähettäminen palvelimelle.
Sillä on seuraava syntaksi.
<?php $_POST['variable_name']; ?>
TÄSSÄ,
- "$_POST[…]" on PHP-taulukko
- "'muuttujan_nimi" on URL-muuttujan nimi.
PHP GET -menetelmä
- Tämä on PHP:n sisäänrakennettu superglobaali taulukkomuuttuja, jota käytetään HTTP GET -menetelmällä lähetettyjen arvojen hakemiseen.
- Taulukkomuuttujaa voidaan käyttää mistä tahansa ohjelman komentosarjasta; sillä on globaali ulottuvuus.
- Tämä menetelmä näyttää lomakearvot URL-osoitteessa.
- Se on ihanteellinen hakukonelomakkeille, koska sen avulla käyttäjät voivat merkitä tulokset.
Sillä on seuraava syntaksi.
<?php $_GET['variable_name']; ?>
TÄSSÄ,
- "$_GET[…]" on PHP-taulukko
- "'muuttujan_nimi" on URL-muuttujan nimi.
GET vs POST -menetelmät
POST | SAA |
---|---|
Arvot eivät näy URL-osoitteessa | Arvot näkyvät URL-osoitteessa |
Ei rajoita arvojen pituutta, koska ne lähetetään HTTP-tekstin kautta | Arvojen pituuden rajoitus on yleensä 255 merkkiä. Tämä johtuu siitä, että arvot näkyvät URL-osoitteessa. Huomaa, että merkkien yläraja riippuu selaimesta. |
Sen suorituskyky on heikompi verrattuna Php_GET-menetelmään, koska HTTP-tekstin Php_POST-arvot kapseloivat aikaa. | Sillä on korkea suorituskyky verrattuna POST-menetelmään, koska arvojen liittäminen URL-osoitteeseen on yksinkertaista. |
Tukee monia erilaisia tietotyyppejä, kuten merkkijono, numeerinen, binääri jne. | Tukee vain merkkijonotietotyyppejä, koska arvot näkyvät URL-osoitteessa |
Tuloksia ei voi merkitä kirjaan | Tulokset voidaan merkitä kirjanmerkiksi URL-osoitteen arvojen näkyvyyden vuoksi |
Alla oleva kaavio näyttää eron hankinnan ja postauksen välillä
Rekisteröintilomakkeen tietojen käsittely
Rekisteröintilomake lähettää itselleen tiedot lomakkeen action-määritteen mukaisesti.
Kun lomake on lähetetty, arvot täytetään $_POST superglobaalissa taulukossa.
Käytämme PHP isset -funktiota tarkistaaksemme, ovatko lomakkeen arvot täytetty $_POST-taulukossa ja käsittelemme tiedot.
Muokkaamme rekisteröintilomaketta sisältämään tietoja käsittelevän PHP-koodin. Alla on muokattu koodi
<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="/fi/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>
TÄSSÄ,
-
tarkistaa, onko form_submitted piilotettu kenttä täytetty $_POST[]-taulukossa ja näyttää kiitos- ja etunimiviestin.
Jos form_fobmitted-kenttää ei ole täytetty $_POST[]-taulukossa, lomake tulee näkyviin.
Lisää esimerkkejä
Yksinkertainen hakukone
Suunnittelemme yksinkertaisen hakukoneen, joka käyttää PHP_GET-menetelmää lomakkeen lähetystyyppinä.
Käytämme yksinkertaisuuden vuoksi a PHP If -lauseke tuotoksen määrittämiseksi.
Käytämme samaa HTML-koodia yllä olevaan rekisteröintilomakkeeseen ja teemme siihen pieniä muutoksia.
<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="/fi/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>
Katso yllä oleva sivu verkkoselaimella
Seuraava lomake näytetään
Kirjoita GET isolla kirjaimella ja napsauta Lähetä-painiketta.
Seuraavat tiedot näytetään
Alla oleva kaavio näyttää yllä olevien tulosten URL-osoitteet
Huomaa, että URL-osoitteessa on haun_termi ja muoto_lähetetty arvot. Yritä kirjoittaa jotain muuta kuin GET ja napsauta sitten Lähetä-painiketta ja katso, mitä tuloksia saat.
Työskentely valintaruutujen, radiopainikkeiden kanssa
Jos käyttäjä ei valitse valintaruutua tai valintanappia, arvoa ei lähetetä, jos käyttäjä valitsee valintaruudun tai valintanapin, arvo yksi (1) tai tosi lähetetään.
Muokkaamme rekisteröintilomakkeen koodia ja lisäämme siihen tarkistuspainikkeen, jonka avulla käyttäjä voi hyväksyä palveluehdot.
<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="/fi/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>
Katso yllä oleva lomake selaimessa
Täytä etu- ja sukunimi
Huomaa, että Hyväksyn käyttöehdot -valintaruutua ei ole valittu.
Napsauta Lähetä-painiketta
Saat seuraavat tulokset
Napsauta takaisin lomakelinkkiä ja valitse sitten valintaruutu
Napsauta Lähetä-painiketta
Saat seuraavat tulokset
Yhteenveto
- Lomakkeita käytetään tietojen saamiseksi käyttäjiltä
- Lomakkeet luodaan käyttämällä HTML-tageja
- Lomakkeet voidaan lähettää palvelimelle käsiteltäväksi joko POST- tai GET-menetelmällä
- POST-menetelmällä lähetetyt lomakearvot kapseloidaan HTTP-tekstiin.
- GET-menetelmällä lähetetyt lomakearvot liitetään ja näytetään URL-osoitteessa.