Guide: PHP- & MySQL-innføring: Kapittel 6
Ta imot data fra brukeren
For å lage dynamiske websider i PHP er man nødt til å ta imot og behandle data fra brukeren. Bare slik kan man tilpasse nettsiden til brukeren.
POST, GET og REQUEST
I begynnelsen av dette kapittelet nevnte vi at det finnes to måter å sende data til et PHP-skript på, POST og GET. Frem til nå har vi brukt $_REQUEST-variabelen for å hente ut data som brukeren har sendt inn. Denne variabelen er en kombinasjon av dataene som er sendt inn via POST og GET, i tillegg til data fra såkalte cookies (vi har ikke lært om dem ennå, og vi kommer tilbake til det senere).
Rekkefølgen dette skjer i, er at først blir GET-variabler satt i $_REQUEST, deretter POST-variabler og til slutt cookie-variabler. Det betyr at dersom du har POST- og GET-variabler ved samme navn, vil kun POST-variabelen bli lagret i $_REQUEST.
Du kan løse dette ved å benytte deg av variabler tilsvarende $_REQUEST for de ulike typene. GET-data finner du også i variabelen $_GET, POST-data i variabelen $_POST, og cookie-data i variabelen $_COOKIE. Ellers fungerer disse variablene på nøyaktig samme måte som $_REQUEST
GET-adresser
Vi nevnte i begynnelsen at når du bruker GET-syntaks for å sende variabler, så kan man se variablene direkte i adressen til siden. Om du surfer rundt på forumet, vil du se at adressen til PHP-forumet erhttp://www.diskusjon.no/index.php?showforum=30
Biten som sier ?showforum=30 er en variabel satt ved hjelp av GET-syntaks. Om vi forsøker å svare på en tråd, får vi en adresse på denne formen;
http://www.diskusjon.no/index.php?act=Post&CODE=02&f=30&t=324727
Her er det fire variabler som blir satt; act, CODE, f og t, henholdsvis med verdiene Post, 02, 30 og 324727. Du kan se at variabel-rekken begynner med et spørsmålstegn, og videre utover separeres variabler med et-tegn.
Det kjekke med å bruke GET-syntaks i stedet for POST-syntaks, er at vi kan lage vanlige lenker med slike variabler satt. Det er ikke mulig med POST-syntaks, og derfor blir GET-syntaksen også oftere brukt enn hva vi kanskje demonstrerer i denne artikkelen.
Dersom du skal sette inn tekst i en slik adresse ved hjelp av PHP, kan du bruke funksjonen urlencode(), men den gjør det svært vanskelig å lese adressen for et menneske. Dersom det er en sjanse for at teksten du skal bruke som variabel inneholder et-tegn eller andre tegn med spesiell betydning, bør du bruke htmlentities() på den før du skriver den i en URL.