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.

  • 📝 Mitä lomakkeet tekevät: HTML-lomake kerää käyttäjän syötteen kenttien, kuten tekstiruutujen, valintaruutujen ja painikkeiden, avulla ja lähettää sen sitten palvelinskriptille.
  • 📬 POST-menetelmä: $_POST lähettää arvot HTTP-rungossa, keeping ne ulos URL, joka sopii kirjautumisille ja arkaluonteisille tiedoille.
  • 🔗 GET-menetelmä: $_GET liittää arvot URL, joten tulokset voidaan lisätä kirjanmerkkeihin, mikä on ihanteellista hakulomakkeille.
  • 🇧🇷 POST vs. GET: POST-metodilla ei ole käytännön pituusrajoitusta ja se tukee useita tietotyyppejä; GET on lyhyempi, sisältää vain merkkijonoja ja on näkyvä.
  • Käsittelytulo: isset()-funktio tarkistaa, onko kenttä lähetetty ennen kuin skripti lukee ja käyttää sen arvoa.
  • ☑️ Valintaruudut: Valintaruutu lähettää arvon vain, kun se on rastitettu, joten isset() vahvistaa, hyväksyikö vai valitsiko käyttäjä vaihtoehdon.
  • 🤖 AI Assist: Tekoälytyökalut voivat luoda validoidun ja turvallisen lomakkeen ja auttaa diagnosoimaan, miksi lomake ei lähetetä oikein.

PHP-lomakkeiden käsittely

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.

PHP-lomake

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.

Luo lomake

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.

GET vs POST -menetelmät

GET vs POST -menetelmät

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.

Yksinkertainen hakukone

Kirjoita GET isoilla kirjaimilla ja napsauta sitten Lähetä-painiketta.

Seuraava näytetään.

Yksinkertainen hakukone

Alla oleva kaavio näyttää URL yllä olevien tulosten vuoksi.

Yksinkertainen hakukone

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.

Työskentely valintaruutujen, valintanappien kanssa

Täytä etu- ja sukunimi.

Huomaa, että Hyväksyn käyttöehdot -valintaruutua ei ole valittu.

Napsauta Lähetä-painiketta.

Saat seuraavat tulokset.

Työskentely valintaruutujen, valintanappien kanssa

Napsauta takaisin lomakkeelle -linkkiä ja valitse sitten valintaruutu.

Työskentely valintaruutujen, valintanappien kanssa

Napsauta Lähetä-painiketta.

Saat seuraavat tulokset.

Työskentely valintaruutujen, valintanappien kanssa

UKK

$_GET lukee arvot kohdasta URL kyselymerkkijono, $_POST lukee arvot pyynnön rungosta ja $_REQUEST yhdistää GET-, POST- ja evästetiedot. Käytä mieluiten tiettyä taulukkoa, jotta tiedät tarkalleen, mistä arvo on peräisin.

Älä koskaan luota raakaan syötteeseen. Tarkista filter_var()-funktiolla tai säännöillä jokainen kenttä ja estä XSS käyttämällä htmlspecialchars()-koodia. Käytä tietokantaan kirjoitettaessa valmiiksi kirjoitettuja lauseita SQL-injektion estämiseksi.

Yleisiä syitä ovat GET-lomakemetodi POST-metodin sijaan, puuttuvat nimiattribuutit syötteissä ja väärä toiminto. URLtai puuttuva moniosainen salaustyyppi tiedostojen latauksille. Tarkista jokainen näistä lomakkeellasi.

Kyllä. Tekoäly voi rakentaa HTML-lomakkeen sekä palvelinpuolen validoinnin, CSRF-suojauksen ja koodinvaihtomerkkien avulla luodun tulosteen. RevTarkista kunkin kentän säännöt ja varmista, että turvatarkistukset vastaavat sovellustasi ennen käyttöönottoa.

Kyllä. Jaa lomake ja käsittelijä, niin tekoäly voi havaita metodien ristiriidan, puuttuvan nimiattribuutin, virheellisen toimintopolun tai lähetyksen estävän validointihaaran ja ehdottaa sitten korjausta.

Tiivistä tämä viesti seuraavasti: