Andreas Korthaus: Zugriff auf Umgebungs-Variablen nach URL-Rewrite

Beitrag lesen

Hallo!

Dazu gehört auf alle Fälle mehr Disziplin.

Was soll daran so schlimm sein? ;-)

ich habe die ganze Zeit das Gefühl das ich früher oder später damit Probleme bekomme ;->

Nicht notwendigerweise. Du musst per Hidden-Field die User-ID übergeben, wenn Du einen Benutzer in der Benutzerverwaltung bearbeitest - Du _könntest_ sie zwar per GET »verschicken« - aber das ist auch nicht schöner - nur anders.

ich verwende HTTP-Auth Header für den eindeutigen-Usernamen und speicher die UserID in einer Session, sehr elegante Variante, was? ;-)
Wobei ich hier auch ein ungutes Gefühl im Magen habe ;-)

Du musst doch einfach das Zeichen "?" finden, dann einen Substring machen, diesen nach dem &-Zeichen trennen, dann jeden einzelnen Eintrag nach dem =-Zeichen trennen und sowohl Name als auch Wert durch urldecode jagen - dann kannst Du damit anstellen, was Du willst.

Ich weiß auch nicht. Eigentlich kein Problem. Ich benutze ja nichts großartiges. Das ganze schreib ich in $myGET[] oder sowas und habe es so schön in einem eigenen Array, muß in eine Funktion packen, OK, das sollte gehen. Danke Dir!
Ich würde das jetzt so am Anfang von index.php schreiben:

if($_SERVER["REQUEST_METHOD"]=="GET") {
    $request_array = explode("?",$_SERVER["REQUEST_URI"]);
    parse_str ( $request_array[1] , $myREQUEST);
}
else {
    $myREQUEST = $_POST;
}

print_r($myREQUEST);

Also _ohne_ extra Funktion/Klasse/Modul, da das sowieso _immer_ auszuführen ist, denn in index.php bekomme ich nur die URL als eigenen GET-Parameter(durch meine rewrite-rule), alle weiteren Parameter würde ich dann in besagten Array schreiben, so dass ich dann nacher so drauf zugreifen kann. Oder ist das nicht optimal? Was mich jetzt noch ein wenig daran stört, aus $_SERVER["REQUEST_URI"] hole ich mir ja jetzt die Parameter, nur ist das denn auch richtig so? Gehörten die Parasmeter überhaupt zur URI? Ich denke schon, oder?
Mit parse_str() mache ich mir so keine Sorgen da ich die genau wie $_POST.. erzeuge. Aber das hat vieleicht doch einen kleinen aber feinen Haken:
$_POST ist superglobal, $myREQUEST nicht. Ich will ja später auch in Klassen darauf zugreifen, dei Frage ist ob ich mir hier eien Möglichkeit überlege, wie ich diesen Array der entsprechenden Klasse übergebe, oder ob ich aus dem Array $myRequest nicht einfach den superglobalen Array $_REQUEST mache, mit http://php3.de/manual/de/function.putenv.php. Aber das soll ja nicht so toll sein, es ist ja eh das Ziel die Umgebungsvariablen mit irgendeiner Schnittestelle  zu übergeben als sie aus den einzelnen Klassen/Modulen selbst zu holen. Nur wie mache ich das praktisch?

Ich habe eine Klasse die einen Wert aus einem REQUEST-Parameter braucht. Wie sollte so eine standardisierte Schnittstelle aussehen?
Ich würde vielleicht in meinem Basismodul eine Methode hinzufügen "getRequest", die dann den kompletten Array zurückgibt, oder sollte ich lieber jeden Wert einzelnd abfragen, indem ich getRequest("var") alles einzelnd übergebe?

Oder wie sieht sonst so eine Schnittstelle aus?

Und noch eine Frage zu Eurer Erfahrung:
Ist es gut oder schlecht das ich GET und POST-Requests beide in dieselbe Variable schreibe? Für mich macht es im Script doch keienn Unterschied ob der HTTP-REQUEST jetzt ein GET oder ein POST war, darum wil ich mich in den einzelnden Scripten gar nicht kümmern, da soll es nur drum gehen - ich brauche eine Angabe vom Browser, und wie die jetzt genau kommt ist Sache des Templates, oder?

Wie ist das aus Eurer Erfahrung? Wann hat es Sinn GET und POST auch im Script zu trennen?

Viele Grüße
Andreas