Andreas Korthaus: Komme ich nach rewrite SICHER an POST-Daten?

Beitrag lesen

Hi Christian!

Jetzt wo Du es schreibst, klingt logisch ;-)

/hallo?q=a     => /index.php?url=hallo&q=a

perfekt, das kann ich ebenfalls gut gebrauchen - wie Du bereits sagtest ;-)

Aber ein ganz anderes Problem. Obige Lösung ist ein sehr guter Weg um GET-Parameter an das richtige Script zu übermitteln, das hab eich zwar auch geschafft aber nicht wirklich so elegant ;-)

Problematischer(oder auch nicht?) sind aber IMHO POST Parameter. Wenn ich ebenso wie im beispiel oben ein Formmukar per POST an "hallo" schicke mit den Parametern "q=a", dann funktioniert ja die Rewrite-Geschichte nicht mehr.

Ich habe die Erfahrung gemacht, dass bei einem Rewrite die POST-Parameter dem Scipt index.php ganz normal zur Verfügung($_POST["q"]="a") stehen, als sei der Request direkt an dieses Script gegangen. Ich habe allerdings ein schlechtes Gefühl bei der Sache, da ich nicht wirklich verstehe wie das funktioniert. POST geht ja an STDIN von PHP, PHP schreibt das dann in $_POST, und/oder $_FILES.

Nur funktioniert das so 100%ig? Denn es ist für PHP durchaus ein Unterschied ob das Script direkt oder über Rewrite angesprochen wurde, denn hierbei ändert sich was an den headern, oder eben nicht, auf alle Fälle kann ich im Script index.php auf den alten Request zugreifen, ich sehe in einer der Umgebungsvariablen das der Request an "hallo?q=a" ging, damals habe ich mir aus dieser Variable die alten Parameter extrahiert. Es dürfte Seitens des Apachen sichergestellt sein das nicht verschiedene Requests durcheinander kommen, das stdin bezieht sich immer auf einen Prozess, der dann an einen bestimmten Client antwortet. Im prinzip ist der Aufruf von index.php nach mod_rewrite ja schon sowas wie ein direkter HTTP-Aufruf, so dass ich eigentlich glaube dass ich immer die POST-Daten in $_POST haben werde, aber ich bin mir halt nicht sicher.

Könnte sich jemand von Euch Konstellationen vorstellen, in denen es Probleme geben könnte?

Grüße
Andreas