PHP regisztrációs űrlap GET, POST módszerekkel példával

⚡ Okos összefoglaló

A PHP űrlapkezelési részében a HTML űrlapokból érkező felhasználói bemenetet rögzítjük, és a $_POST és $_GET szuperglobális metódusok segítségével dolgozzuk fel a szerveren. Ez a bemutató egy regisztrációs űrlapot hoz létre, ismerteti a POST és GET metódusokat, összehasonlítja őket, és bemutatja, hogyan kell feldolgozni a mezőket, jelölőnégyzeteket és a keresési bemenetet.

  • 📝 Mit csinálnak az űrlapok: Egy HTML űrlap felhasználói bemenetet gyűjt mezőkön, például szövegdobozokon, jelölőnégyzeteken és gombokon keresztül, majd elküldi azt egy szerveroldali szkriptnek.
  • 📬 POST módszer: A $_POST függvény a HTTP törzsben küldi az értékeket, keeping ki őket a URL, amely megfelel a bejelentkezéseknek és az érzékeny adatoknak.
  • 🔗 GET módszer: A $_GET függvény hozzáfűzi az értékeket a URL, így az eredmények könyvjelzővel elláthatók, ami ideális a keresési űrlapokhoz.
  • 🇧🇷 POST vs. GET: A POST-nak nincs gyakorlati hosszkorlátja, és számos adattípust támogat; a GET rövidebb, csak karakterlánc és látható.
  • Feldolgozási bemenet: Az isset() függvény ellenőrzi, hogy egy mező be lett-e küldve, mielőtt a szkript beolvassa és felhasználja annak értékét.
  • ☑️ Jelölőnégyzetek: Egy jelölőnégyzet csak akkor küld értéket, ha be van jelölve, így az isset() visszaigazolja, hogy a felhasználó elfogadta vagy kiválasztotta-e a lehetőséget.
  • 🤖 AI Assist: A mesterséges intelligencia eszközei képesek validált, biztonságos űrlapokat generálni, és segíthetnek diagnosztizálni, hogy miért nem küldődik be megfelelően egy űrlap.

PHP űrlapkezelés

Mi az a Form?

Amikor bejelentkezik egy weboldalra vagy a postaládájába, egy űrlappal lép kapcsolatba.

Űrlapokat használnak arra, hogy megkapják a felhasználótól származó adatokat, és elküldjék azokat a webszervernek feldolgozásra.

Az alábbi diagram az űrlapkezelési folyamatot szemlélteti.

PHP űrlap

Az űrlap egy HTML-címke, amely grafikus felhasználói felület elemeket tartalmaz, például beviteli mezőket, jelölőnégyzeteket, választógombokat és egyebeket.

Az űrlapot a következő használatával definiáljuk: … A címkék és a grafikus felhasználói felület elemei űrlapelemekkel, például az inputtal vannak definiálva.

Mikor és miért használunk űrlapokat?

  • Az űrlapok hasznosak fejlesztéskorping rugalmas és dinamikus alkalmazások, amelyek elfogadják a felhasználói bevitelt.
  • Az űrlapok segítségével szerkeszthetjük a már meglévő adatokat az adatbázisból.

Hozzon létre egy űrlapot

Az űrlap létrehozásához HTML címkéket fogunk használni. Az alábbiakban az űrlap létrehozásához szükséges dolgok minimális listája található.

  • Űrlapcímkék megnyitása és bezárása …
  • Az űrlap benyújtásának típusa POST vagy GET
  • Submission URL amely feldolgozza a beküldött adatokat
  • Beviteli mezők, például beviteli dobozok, szövegterületek, gombok, jelölőnégyzetek és hasonlók.

Az alábbi kód egy egyszerű regisztrációs űrlapot hoz létre.

<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>

A fenti kód webböngészőben való megtekintésekor a következő űrlap jelenik meg.

Hozzon létre egy űrlapot

ITT,

  • … a nyitó és záró űrlapcímkék
  • az action=”registration_form.php” method=”POST” meghatározza a célállomást URL és a beküldés típusa.
  • Keresztnév/Vezetéknév: a beviteli mezők címkéi
  • beviteli mezőcímkék
  • az új sorcímke
  • egy rejtett érték, amely annak ellenőrzésére szolgál, hogy az űrlapot elküldték-e vagy sem
  • az a gomb, amelyre kattintva az űrlap elküldésre kerül a szervernek feldolgozásra.

Az űrlap adatainak elküldése a szervernek

Az űrlap action attribútuma határozza meg a beküldést. URL amely feldolgozza az adatokat. A method attribútum határozza meg a beküldés típusát.

PHP POST módszer

  • Ez a beépített PHP szuperglobális tömbváltozó, amelyet a HTTP POST metóduson keresztül beküldött értékek lekérésére használnak.
  • A tömbváltozó a program bármely szkriptjéből elérhető; globális hatálya van.
  • Ez a módszer ideális, ha nem szeretné megjeleníteni az űrlap bejegyzéseinek értékeit a URL.
  • A POST metódus használatára jó példa a bejelentkezési adatok szerverre küldése.

A következő szintaxissal rendelkezik.

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

ITT,

  • A „$_POST[…]” a PHP tömb
  • A „'változó_neve'” az űrlapmező neve.

PHP GET módszer

  • Ez a beépített PHP szuperglobális tömbváltozó, amelyet a HTTP GET metóduson keresztül beküldött értékek lekérésére használnak.
  • A tömbváltozó a program bármely szkriptjéből elérhető; globális hatálya van.
  • Ez a metódus az űrlap értékeit jeleníti meg a URL.
  • Ideális keresőmotor-űrlapokhoz, mivel lehetővé teszi a felhasználók számára az eredmények könyvjelzővel való megjelölését.

A következő szintaxissal rendelkezik.

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

ITT,

  • A „$_GET[…]” a PHP tömb
  • A „'változó_neve'” a URL változó neve.

GET vs POST módszerek

POST GET
Az értékek nem láthatók a URL Értékek láthatók a URL
Nincs korlátozás az értékek hosszára vonatkozóan, mivel azok a HTTP kérés törzsén keresztül kerülnek elküldésre. Az értékek hosszára korlátozás vonatkozik, általában 255 karakter. Ez azért van, mert az értékek a URLVegye figyelembe, hogy a karakterek felső korlátja a böngészőtől függ.
Alacsonyabb teljesítményt nyújt a GET metódushoz képest, mivel időt vesz igénybe a POST értékek HTTP törzsbe való beágyazása. Nagyobb teljesítményt nyújt a POST metódushoz képest, mivel az értékeket egyszerűen hozzáfűzi a URL.
Számos különböző adattípust támogat, például karakterláncot, numerikusat, binárist és egyebeket. Csak karakterlánc adattípusokat támogat, mivel az értékek a URL
Az eredményeket nem lehet könyvjelzővel ellátni Az eredmények könyvjelzővel is elláthatók, mivel az értékek láthatók a URL

Az alábbi ábra a GET és a POST közötti különbséget mutatja.

GET vs POST módszerek

GET vs POST módszerek

A regisztrációs űrlap adatainak feldolgozása

A regisztrációs űrlap az űrlap action attribútumában meghatározott adatokat küldi be magának.

Amikor egy űrlapot elküldtek, az értékek a $_POST szuperglobális tömbben jelennek meg.

A PHP isset függvény segítségével ellenőrizzük, hogy a $_POST tömbben kitöltötték-e az űrlapértékeket, és feldolgozzuk az adatokat.

Módosítani fogjuk a regisztrációs űrlapot, hogy tartalmazzon egy PHP kódot, amely feldolgozza az adatokat. Alább látható a módosított 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>

ITT,

  • ellenőrzi, hogy a form_submitted rejtett mező ki van-e töltve a $_POST[] tömbben, és megjelenít egy köszönőüzenetet és egy keresztnevet. Ha a form_submitted mező nincs kitöltve a $_POST[] tömbben, akkor az űrlap megjelenik.

További példák

Egyszerű kereső

Egy egyszerű keresőmotort fogunk tervezni, amely a PHP GET metódust használja űrlap beküldési típusként.

Az egyszerűség kedvéért a PHP if utasítás a kimenet meghatározásához.

Ugyanazt a HTML-kódot használjuk a fenti regisztrációs űrlaphoz, és minimális módosításokat hajtunk végre rajta.

<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>

Tekintse meg a fenti oldalt egy webböngészőben.

A következő űrlap fog megjelenni.

Egyszerű kereső

Írd be nagybetűkkel a GET parancsot, majd kattints a küldés gombra.

A következő fog megjelenni.

Egyszerű kereső

Az alábbi ábra mutatja a URL a fenti eredményekért.

Egyszerű kereső

Jegyezze fel a URL megjelenítette a search_term és a form_submitted értékeket. Próbálj meg valami mást beírni, mint a GET, majd kattints a küldés gombra, és nézd meg, milyen eredményt kapsz.

Munka jelölőnégyzetekkel, rádiógombokkal

Ha a felhasználó nem jelöl be jelölőnégyzetet vagy választógombot, nem kerül elküldésre érték. Ha a felhasználó kiválaszt egy jelölőnégyzetet vagy választógombot, akkor az egy (1) vagy igaz érték kerül elküldésre.

Módosítjuk a regisztrációs űrlap kódját, és tartalmazunk egy ellenőrző gombot, amely lehetővé teszi a felhasználó számára, hogy elfogadja a szolgáltatási feltételeket.

<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>

Tekintse meg a fenti űrlapot egy böngészőben.

Munka a jelölőnégyzetekkel, rádiógombokkal

Írd be a kereszt- és vezetékneveket.

Vegye figyelembe, hogy az Agree to Terms of Service jelölőnégyzet nincs bejelölve.

Kattintson a Küldés gombra.

A következő eredményeket kapja.

Munka a jelölőnégyzetekkel, rádiógombokkal

Kattintson a vissza az űrlaphoz hivatkozásra, majd jelölje be a jelölőnégyzetet.

Munka a jelölőnégyzetekkel, rádiógombokkal

Kattintson a Küldés gombra.

A következő eredményeket kapja.

Munka a jelölőnégyzetekkel, rádiógombokkal

GYIK

A $_GET értékeket olvas be a URL lekérdezési karakterlánc, a $_POST a kérés törzséből olvassa be az értékeket, a $_REQUEST pedig egyesíti a GET, POST és cookie adatokat. A konkrét tömböt részesítsd előnyben, hogy pontosan tudd, honnan származik az érték.

Soha ne bízz nyers bemenetben. Ellenőrizd a filter_var() függvénnyel vagy az egyes mezők szabályaival, és a kimenetet htmlspecialchars() függvénnyel escape-eld az XSS leállításához. Használj előkészített utasításokat az adatbázis-írásokhoz az SQL injektálás elkerülése érdekében.

Gyakori okok lehetnek a GET form metódus használata POST helyett, hiányzó név attribútumok a bemeneteken, helytelen művelet URL, vagy hiányzó többrészes enctype a fájlfeltöltésekhez. Ellenőrizze ezeket az űrlapon.

Igen. A mesterséges intelligencia képes HTML űrlapot létrehozni, valamint szerveroldali validációt, CSRF-védelmet és escape-elt kimenetet is biztosítani. RevTekintse meg az egyes mezők szabályait, és a telepítés előtt ellenőrizze, hogy a biztonsági ellenőrzések megfelelnek-e az alkalmazásának.

Igen. Oszd meg az űrlapot és a kezelőt, és a mesterséges intelligencia képes észlelni a metódusok közötti eltérést, a hiányzó név attribútumot, a helytelen műveleti útvonalat vagy a beküldést blokkoló validációs ágat, majd javaslatot tenni a javításra.

Foglald össze ezt a bejegyzést a következőképpen: