PHP Få formulärdata via POST och GET

I många applikationer måste du hämta inskrivna data från en form av något slag. Här är några metoder för att göra det med PHP.

Du bygger en webbplats för volontärer att registrera sig med ett namn och e-post för ett projekt. Du har en enkel blankett där användarna anger sina namn och e-postadresser. Vad händer när de klickar skickar in på det här formuläret? Inget händer om du använder vanlig gammal HTML. HTML kan inte göra någonting i sig. Vi måste göra detta arbete med kraften i PHP.

Att hämta inmatning från en HTML-form är en grundläggande PHP-färdighet som alla behöver veta, eftersom en stor del av alla webbapplikationer behandlar formulär på ett eller annat sätt (t.ex. inloggningsformulär, registreringsformulär, inställningsformulär, e-postformulär etc.) .

$ _GET och $ _POST

Vi har två fördefinierade variabler i PHP som används för att hämta data från en HTML-form. Dessa är $ _GET och $ _POST. Du kan ha sett dessa i en HTML-form. Öppningsformuläret har ett attribut som heter "get" eller "post." Observera följande exempel:



I det här HTML-formuläret ger vi det en metodattribut av GET. Det betyder att vi måste använda variabeln $ _GET i PHP för att kunna hämta data från denna blankett. Å andra sidan, om vi använder method =”post”, vi skulle behöva använda variabeln $ _POST. Vad är skillnaden? Hur får vi faktiskt data?

$ _GET

För att använda GET-metoden skulle vi ställa in vår form som exempel nedan med "get" -set som metodattributet.



Namn:
Siffra:


Observera att vi gav varje formulärfält a namn attribut. Detta är nödvändigt eftersom vi behöver kunna rikta in på varje fält. Vi ger också varje formulärfält ett meningsfullt namn. Nu, när användaren klickar skickar, vad händer?

Åtgärdsattributet anger en annan fil på din server där formulärdata skickas. Därför körs inte själva PHP-delen på samma sida som formuläret (även om det kan vara). Vanligtvis körs den på en annan fil. I det ovanstående fallet skickas formulärets data till filen när användaren klickar in process.php.

På filen Process.php, skulle vi ha följande kod:

  

Du kommer att se att jag skapar två nya variabler för att lagra värdena från min form ($ namn och $ nummer). Vi ställer dessa variabler lika med vad som finns i formulärfältet som har namnet "fName" och "number."


$ _GET [ "FNAME"];
$ _GET [ "nummer"];

Således tar vi värdena från vår form som just avslutats från fälten som anges av vår $ _GET-variabel och lägger dem i två nya variabler. Sedan echoar vi de variabler som vi skapade för användaren för att visa ett meddelande på åtgärdssidan.

Min HTML-formulärsida:

Då, när jag klickar in, (märka url):

Detta är skillnaden mellan GET och POST. Med GET-metoden bifogas våra variabler till URL-adressen till bearbetningssidan. Tänk om du fick ett lösenordsfält från en användare, och det visades i webbadressen. Det är därför att använda GET för att hämta känslig användarinformation är i allmänhet inte en bra idé. Det är också därför du bör titta på POST för att skicka känslig information (t.ex. användarlösenord, e-postmeddelanden, etc.).

$ _POST

Vi använder POST-variabeln på samma sätt som GET. Den enda skillnaden är att vår information är dold från användaren, inte visad i webbadressen. Vi har också inga gränser för hur mycket data du kan skicka (för mycket stora former).

För att ändra din metod i formuläret till POST, använd följande:


Namn:
Siffra:

För att ändra variablerna i process.php-sidan till POST, använd följande:

  

Med hjälp av $ post, när du klickar in, visas inte dina variabler i webbadressen: