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.
Basiskunnskaper
For å gi data til våre PHP-skript, er vi nødt til å benytte oss av HTML og HTTP sine metoder for innsending av data til serveren. Det gir oss to metoder å gi data til en nettside på. Den ene kalles GET-syntaks, og variabler sendt ved denne syntaksen kan du lese fra adresselinjen i nettleseren.
Om du besøker vår prisguide og ser på tastatur-kategorien, ser du at det er en variabel i adresselinjen, cat_id, som er satt til 33. Det betyr at du kan linke til skript ved å bruke GET-syntaks.
Den andre metoden kalles POST-syntaks, og er ikke synlig i adresselinjen. Denne syntaksen brukes som oftest når du benytter deg av HTML-skjemaer for å sende inn data, og den må brukes dersom du skal la brukeren laste opp filer. I all hovedsak kommer vi til å konsentrere oss om GET-syntaksen i dag.
Et HTML-skjema som lar brukeren skrive inn fornavnet og etternavnet sitt ser slik ut;
<form method="POST" action="velkommen.php"> <p>Fornavn: <input type="text" name="fornavn" /></p> <p>Etternavn: <input type="text" name="etternavn" /></p> <p><input type="submit" value="Send inn" /></p> </form>
Siden vi antar at du kan grunnleggende HTML, skal vi ikke gå spesielt inn på HTML-koden her, og har derfor uthevet de viktige punktene i koden ovenfor. Dette HTML-skjemaet er bare et utdrag av en full HTML-side, og er derfor ikke gyldig HTML.
På første linjen angir den at vi skal benytte oss av POST-syntaks, og at skjemaet skal sendes til filen velkommen.php. Neste linje gir mulighet for å skrive inn fornavn, og det angir navnet på feltet; fornavn. Linjen etterpå gjør det samme for etternavn, og til slutt har vi en "Send inn"-knapp.
For å ta imot dataene må vi nå lage en PHP-fil ved navnet velkommen.php. I første omgang skal vi bare skrive ut strengen "Velkommen,
<?php
if ($_REQUEST['fornavn'] && $_REQUEST['etternavn'])
{
$fornavn = htmlentities(strip_tags(
stripslashes($_REQUEST['fornavn'])));
$etternavn = htmlentities(strip_tags(
stripslashes($_REQUEST['etternavn'])));
echo "Velkommen, $fornavn $etternavn!";
}
else
{
echo "Du har ikke komt til denne siden på rett måte.";
}
?>
Å få tak i det som blir sendt til PHP-skriptet gjør vi svært enkelt gjennom $_REQUEST. Dette er en superglobal variabel (superglobal betyr at du får tilgang til den fra hvor som helst i et PHP-skript uten å måtte bruke nøkkelordet global). Variabelen inneholder en array, som er indeksert med navnene på feltene som blir sendt inn. Husk at feltnavnene er versalsensitive, som betyr at det blir gjort forskjell på store og små bokstaver.
Først sjekker vi om de to påkrevde variablene er satt. Siden en tom string blir gjort om til FALSE når man bruker den i en if-setning, slipper vi å bruke funksjoner som empty() for å sjekke om disse variablene er satt. Om de ikke er satt, skriver vi bare ut en feilmelding.
Før vi sender data tilbake til brukeren, ser du at vi bruker tre forskjellige funksjoner på dataene. Dette har med sikkerhet å gjøre, og vi går inn i detaljene for dette på neste side. Til slutt skriver vi ut en velkomsttekst til brukeren.