phpbar.de logo

Mailinglisten-Archive

AW: [php] Kombination von GET / POST erlaubt?

AW: [php] Kombination von GET / POST erlaubt?

Andreas Müller php at universalware.de
Die Aug 5 21:44:14 CEST 2003


Hallo Arne,

> Wie dem auch sei: Auch wenn es im funktionieren sollte: schön ist das
> Mischen von GET und POST in einem Formular definitiv nicht. Außerdem ist
> mir noch einmal nicht ansatzweise klar, wozu man sowas eigentlich
> benötigt.

na dann will ich dir mal ein Beispiel geben:
Wenn du ein Bearbeitungsformular für einen Datensatz hast dann ist es sehr
sinnvoll den Primary Key des Satzes als GET Parameter zu übergeben da man
das ja z.B. so recht schon verlinken kann.

Nun ist das ganze ein Edit Formular wo es sich anbietet die Daten per Post
zu übermitteln. Soweit so gut. Wenn man jetzt noch eine Fehlerabprüfung
einbaut und das Script sich beim Post selbst aufrufen läßt dann sollte der
GET Parameter erhalten bleiben. Sonst müsste man z.B. immmer unterscheiden
ob er in $_GET oder $_POST drin ist (je nach $_SERVER['REQUEST_METHOD']).
Nun verliert man nach einem Post des Formulars das zu einem Fehler führte
den Primary Key in der URL. Damit verliert man jeder Bookmark und Reload
Funktion. Nicht so toll.
Die alternative nicht das Script sich selbst sondern ein
"Verarbeitungsscript" aufzurufen ist erst recht unschön da man dann im
Fehlerfall einen Redirect machen muss (zusätzlicher overhead da der vom
Browser ausgeführt wird) und man dann das Problem der
Fehlerparameterübergabe an das Eingabeformular hat.

Ich arbeite sehr gern und sehr viel mit GET+POST in Formularen. Und bisher
funktionierte es noch überall wunderbar. Was man definitiv nicht machen
sollte ist GET/GET. D.h. Parameter in der ACTION + METHOD="GET" ... da kommt
von unterschiedlichen Browsern zum Teil recht unterschiedlicher Müll an.

Ich müsste zu dem Thema mal konkret das RFC lesen. Ob da wirklich GET
Parameter bei einem POST Request ausgeschlossen werden. Ich kann es mir kaum
vorstellen ... eher das es nicht explizit erwähnt ist :-) Aber ich les mir
das mal darauf genau durch.

Gruß,
Andreas


php::bar PHP Wiki   -   Listenarchive