Beim Formular-Attribut „method“ haben wir die Wahl zwischen „get“ und „post“, je nachdem welches wir wählen, müssen wir im PHP Script auf die Variable „$_GET“ oder „$_POST“ zugreifen. Doch was ist der Unterschied zwischen den beiden?
GET wird in der URL angezeigt
Wenn wir ein Formular mit „get“ verschicken, wird in der URL-Zeile des Browser die Variablen + ihrem Wert angezeigt:
Diesen Wert kann der Benutzer manipulieren, allerdings ist $_POST kein Schutz dagegen, aber es sieht in den meisten Fällen „schöner“ aus, da die URL-Zeile nicht mit Variablen vollgepumpt ist.
GET ist begrenzt, POST nicht
Gerade wenn man ein Formularfeld hat, indem sehr sehr viele Daten reinkommen können (z.b. ein Blog-Artikel, ein Forumbeitrag, ein Wikipedia-Artikel) muss man POST verwenden, da die get-Methode begrenzt ist. Bzw eigentlich ist nicht „get“ begrenzt, sondern die Url-Zeile des Browsers. Je nach Browser hat man eine maximale Länge um 1024 Zeichen und für Artikel ist das in der Regel nicht ausreichend (für Twitter-Nachrichten schon ;) )
Vor- und Nachteile von post und get
Hier nochmal die Vor- und Nachteile zusammengefasst:
- Bei GET sieht der User, welche Daten übergeben werden (kann man als Vorteil oder als Nachteil sehen)
- Bei GET ist die Länge begrenzt, bei POST nicht
- Die Ergebnisseite eines GET-Formulars kann man bookmarken, da alle nötigen Informationen in der URL enthalten sind
- Die Ergebnisseite eines POST-Formulars kann man weder bookmarken noch im Browser aktualisieren, da die Daten nicht mehr zur Verfügung stehen
- File-Upload ist nur mit POST möglich