Hi,
Aber irgendwie kapiere ich das scheinbar nicht!?
Ich will ja eigentlich bloß wissen, ob ich per mod_rewrite feststellen kann, ob ein Client ein gesendetes Cookie akzeptiert hat oder nicht.
also mittlerweile bin ich mit meinem Verstehen der ganzen Geschichte etwas weiter vorangekommen.
Das Problem bei den Cookies ist, dass wenn jetzt ein Request vom Client ohne Cookie kommt, man nicht weiss, ob es daran liegt, dass dies der erste Request an diese Domain ist, oder daran, dass der Client keine Cookies akzeptiert.
Die einzige mir bekannte Möglichkeit dies zu prüfen, wäre die mittels des Referrers. Da dieser aber weder existent sein muss, noch zuverlässig ist, scheidet diese Methode also aus. Verbleibt also keine mehr.
Jetzt könnte man natürlich auch, wenn ein Request ohne Cookie reinkommt, hingehen und ein Cookie per mod_rewrite setzen. Um allerdings zu prüfen, ob der Client das Cookie akzeptiert hat, muss man nach dem Setzen des Cookies einen neuen Request erzeugen, also ein Redirect-Flag in der entsprechenden RewriteRule setzen. Soweit sogut. Das Problem besteht allerdings darin, dass man den neuen Request jedoch "wiedererkennen" muss, d.h. also von einem "normalen" Request ohne Cookie unterscheiden können muss, denn es könnte ja sein, dass eben im Falle der Ablehnung des Cookies durch den Client, kein Cookie mitgeschickt wird.
Hier taucht nun das Problem auf, dass man dazu entweder einen entsprechenden Querystring anhängen, oder die URL in irgendeiner Weise verändern muss, um diese "Erkennung" des Requests zu ermöglichen.
Will man jetzt aber keine unterschiedlichen URLs für mit und ohne Cookies haben, ist das Ganze wiederum zum Scheitern verurteilt, weil man ja nur_entweder_die URL intern umschreiben lassen kann,_oder_einen Redirect erzeugen kann (bei dem dann alle Umgebungsvariablen z.B. weg sind).
Oder kennt jemand eine Möglichkeit?
Die Umgebungsvariablen existieren nur so lange, wie die Abarbeitung des aktuellen Requests andauert. Löst du durch einen Redirect einen neuen Request aus, sind sie wieder futsch.
jo - eigentlich doof, wäre ansonsten nämlich u.a. für das obige Problem eine einfache und sichere Lösung.
Kriege ich eine Variable, die ich per Flag in einer RewriteRule setze auch in meine index.php weitergereicht oder geht das nicht?
So, jetzt hab' ich es herausgefunden!
Variablen, die man per E=VAR:VAL setzt, stehen anschließend in dem Array $_SERVER['REDIRECT_VAR'] (Groß-/ Kleinschreibung beachten! bei E=var:VAL ~ $_SERVER['REDIRECT_var'])!
Warum kann das keiner einfach so in sein Mod_Rewrite Tutorial schreiben!? Oder die Leute von der Apache-Doc!?
Aber da man die Variablen und ihre Werte ja leider nicht über einen Redirect rüberretten kann, braucht man das eigentlich eh nicht, da man dann genausogut gleich mit einem entsprechenden Querystring arbeiten kann.
Wenn aber jemand noch gute Ideen hat, insbesondere zu der Cookiegeschichte, würde ich mich über seine Antwort sehr freuen.
Bis dahin,
Gruß Gunther