PHP-rekisteröintilomake GET-, POST-menetelmillä esimerkin kanssa
⚡ Älykäs yhteenveto
PHP:n lomakkeiden käsittely tallentaa käyttäjän syötteen HTML-lomakkeista ja käsittelee sen palvelimella $_POST- ja $_GET-superglobaalien metodien avulla. Tämä ohje luo rekisteröintilomakkeen, selittää POST- ja GET-metodit, vertailee niitä ja näyttää, miten kenttiä, valintaruutuja ja hakusyötettä käsitellään.

Mikä on muoto?
Kun kirjaudut verkkosivustolle tai sähköpostiisi, 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-tagi, joka sisältää graafisen käyttöliittymän elementtejä, kuten syöttöruutuja, valintaruutuja, radiopainikkeita ja muita.
Lomake määritellään käyttämällä … tagit ja graafisen käyttöliittymän kohteet määritellään lomake-elementtien, kuten syötteen, avulla.
Milloin ja miksi käytämme lomakkeita?
- Lomakkeista on hyötyä kehitystyössäping joustavia ja dynaamisia sovelluksia, jotka hyväksyvät käyttäjän syötteen.
- Lomakkeita voidaan käyttää jo olemassa olevien tietojen muokkaamiseen tietokannassa.
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
- Submission URL joka käsittelee lähetetyt tiedot
- Syöttökentät, kuten syöttöruudut, tekstialueet, painikkeet, valintaruudut ja vastaavat.
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ää kohteen URL ja lähetystyyppi.
- 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 napsauttamalla lomake lähetetään palvelimelle käsiteltäväksi
Lomaketietojen lähettäminen palvelimelle
Lomakkeen action-attribuutti määrittää lähetyksen URL joka käsittelee tiedot. Method-attribuutti määrittää lähetystyypin.
PHP POST -menetelmä
- Tämä on PHP:n sisäänrakennettu superglobaali taulukkomuuttuja, jota käytetään arvojen hakemiseen HTTP POST -metodin kautta.
- Taulukkomuuttujaa voidaan käyttää mistä tahansa ohjelman komentosarjasta; sillä on globaali ulottuvuus.
- Tämä menetelmä on ihanteellinen, kun et halua näyttää lomakkeen viestien arvoja URL.
- Hyvä esimerkki POST-metodin 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 lomakekentän nimi.
PHP GET -menetelmä
- Tämä on PHP:n sisäänrakennettu superglobaali taulukkomuuttuja, jota käytetään HTTP GET -metodin kautta lähetettyjen arvojen hakemiseen.
- Taulukkomuuttujaa voidaan käyttää mistä tahansa ohjelman komentosarjasta; sillä on globaali ulottuvuus.
- Tämä menetelmä näyttää lomakkeen arvot URL.
- Se on ihanteellinen hakukoneiden lomakkeille, koska se antaa käyttäjien lisätä tuloksia kirjanmerkkeihin.
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 | Arvot näkyvät kohdassa URL |
| Arvojen pituudelle ei ole rajoitusta, koska ne lähetetään HTTP-pyynnön rungon kautta | Arvojen pituudelle on rajoitus, yleensä 255 merkkiä. Tämä johtuu siitä, että arvot näytetään URLHuomaa, että merkkien yläraja riippuu selaimesta. |
| Suorituskyky on GET-metodia heikompi, koska POST-arvojen kapselointi HTTP-runkoon vie aikaa. | Suorituskyky on POST-menetelmää parempi, koska arvojen liittäminen funktioon on yksinkertaista. URL. |
| Tukee useita eri tietotyyppejä, kuten merkkijonoja, numeerisia tietoja, binääritietoja ja paljon muuta. | Tukee vain merkkijonotietotyyppejä, koska arvot näytetään URL |
| Tuloksia ei voi lisätä kirjanmerkkeihin | Tulokset voidaan lisätä kirjanmerkkeihin arvojen näkyvyyden vuoksi. URL |
Alla oleva kaavio näyttää GET- ja POST-komentojen välisen eron.
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 lisäämällä siihen 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="/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 $_POST[]-taulukon form_submitted-piilokenttä täytetty, ja näyttää kiitosviestin ja etunimen. Jos $_POST[]-taulukon form_submitted-kenttää ei ole täytetty, lomake näytetään.
Lisää esimerkkejä
Yksinkertainen hakukone
Suunnittelemme yksinkertaisen hakukoneen, joka käyttää PHP:n GET-metodia 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="/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ä olevaa sivua verkkoselaimessa.
Seuraava lomake näytetään.
Kirjoita GET isoilla kirjaimilla ja napsauta sitten Lähetä-painiketta.
Seuraava näytetään.
Alla oleva kaavio näyttää URL yllä olevien tulosten vuoksi.
Huomaa URL on näyttänyt hakutermien ja lähetettyjen form_tiedostojen arvon. Kokeile syöttää jotain muuta kuin GET-komennon, napsauta sitten Lähetä-painiketta ja katso, mitä tuloksia saat.
Työskentely valintaruutujen, radiopainikkeiden kanssa
Jos käyttäjä ei valitse valintaruutua tai radionappia, arvoa ei lähetetä. Jos käyttäjä valitsee valintaruudun tai radionapin, arvoksi lähetetään yksi (1) tai tosi.
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="/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>
Näytä 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 lomakkeelle -linkkiä ja valitse sitten valintaruutu.
Napsauta Lähetä-painiketta.
Saat seuraavat tulokset.










