Superglobale variabler $_GET og $_POST - PHP

Lær at læse de superglobale variabler $_GET og $_POST

Introduktion

Variablerne $_GET og $_POST er superglobale variabler (tilgængelig overalt i koden).

$_GET udfyldes automatisk når en <form method="get"> sendes eller når der skrives noget efter et spørgsmålstegn (?) i URL.
$_POST udfyldes automatisk når en <form method="post"> sendes.

Besøges "fil.php?navn=david" i browseren vil $_GET["navn"] indeholde værdien "david".
Samtidig vil $_SERVER["QUERY_STRING"] indeholde alt data efter spørgsmålstegnet "navn=david".

Get 1

Resultatet ovenfor er skabt af følgende kode

Klik på linket og læg mærke til hvordan adressen i browseren ændres og kig på resultatet igen for at se indholdet af $_GET som nu indeholder data der kan vises.

Get 2

Med $_GET kan vi have en enkelt fil som er i stand til at vise forskelligt sideindhold afhængig af URL.
Resultatet ovenfor er skabt af følgende kode

Brugerne vil så være i stand til at lave links til en bestemt vare så de let kan finde varen igen eller sende linket til andre så de kan se en bestemt vare.

Post 1

Her er en formular som sender data med POST metoden.
Med POST metoden vises data ikke i URL hvilket er bedst hvis der er meget data eller data indeholder ting som personlige beskeder eller kodeord som man ikke ønsker at browseren skal gemme i sin historik over besøgte sider.


Resultatet ovenfor er skabt af følgende kode

Hvis man viser data fra $_POST på hjemmesiden så kan dataene blande sig i HTML koden hvis den indeholder bestemte tegn.

For at vise data som de står i formen så kan man bruge htmlspecialchars() når man ønsker at vise data på en hjemmeside.

htmlspecialchars() laver tegn som < og > om til &lt; og &gt; hvilket betyder at data vises i browseren som de blev indtastet i formen.

Upload fil

Filer som billeder, videoer, lyd og programmer skal overføres som binær data.
Når men vil sende binær data med en formular skal man bruge <form enctype="multipart/form-data">.

Den superglobale variabel $_FILES (tilgængelig overalt i koden) indeholder data for uploadet fil i <input type="file"> som filnavn, filtype og filstørrelse.
Prøv og "upload" en mindre fil :


Resultatet ovenfor er skabt af følgende kode

Filen uploades først til den midlertidige placering ($_FILES["testfil"]["tmp_name"]).

Det er så meningen at man derefter skal flytte filen til sin endelige destination med move_uploaded_file($_FILES["testfil"]["tmp_name"], $destination).

$_FILES["testfil"]["error"] indeholder et tal hvis noget gik galt.

Her er en forklaring på fejlkoderne :

0 : Ingen fejl. Filen blev uploadet med succes.
1 : Filen er for stor. Opsætningen tillader ikke så stor en fil (upload_max_filesize = 96M ).
2 : Filen er for stor. Formen tillader ikke så stor en fil. // Hvis filen er større en MAX_FILE_SIZE i formen
3 : Filen blev kun uploadet delvist.
4 : Der er ikke valgt nogen fil.
5 : Noget.
6 : Der er ingen midlertidig upload mappe på serveren.
7 : Filen kunne ikke gemmes.
8 : Fil upload blev stoppet af extension.
Siden er sidst opdateret mandag 25. juni 2018