$_REQUEST
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufgefallen
aussehen
befehl
betreten
code
einstellung
england
erweiterung
frage
grad
http
info
post
prinzipielle vorteile
session
setzen
sprache
test
testen
url
-
Hi,
habe grade gelesen das $_REQUEST die Befehle $_GET, $_POST und $_COOKIE ersetzt (letzeres war mir neu ). Meine Frage ist nun allerdings welche der genannten Variablen Priorität hat.
Wenn ich nun z.B. ein Formular per POST mit der Variable "Test=1" , an einen Link mit "?Test=2" am Ende, absende welcher Wert hat dann Vorrang? Und wie ist es wenn dann auch noch ein Cookie mit "Test=3" existiert?
Wenn mir das Jemand aus dem Stehgreif sagen kann wäre es super, ansonsten gehe ich nachher, wenn ich zu Hause bin, den mühseligen Weg und teste es
Gruß
DCBlaze -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das hängt wohl von Deiner Serverkonfiguration ab, Du wirst also so oder so testen müssen ;)
Würde allerdings grundsätzlich erst mal davon abraten, $_REQUEST zu benutzen - warum willst Du das denn verwenden?
Siehe auch:
http://www.tutorials.de/forum/php/294742-prinzipielle-vorteile-request-statt-post-und-get.html
http://www.eecho.info/Echo/php/php%E2%80%99s-variable-order/ -
Danke für die Info.
Für meine 1. Seite die ich mit PHP gemacht habe, habe ich immer $_REQUEST verwendet. Aus Sicherheitsgründen ist ja davon abzuraten, von daher habe ich alle Erweiterungen die ich gemacht habe bereits auf $_POST umgestellt.
Nun zur Frage wozu ich es brauche. Es ist etwas kompliziert es genau zu erklaären aber ich versuche es mal:
Ein bekannter möchte eine Alli-Page für EVE-Online haben. Die Member setzen sich aus englisch-, deutsch- und niederländisch sprechenden zusammen. Nun habe ich vor die Seite dreisprachig auszulegen, was wie folgt aussehen sollte:
Wenn eine Sprache gewählt wird, wird ein Cookie mit der Information gespeichert damit der User, wenn er die Seite neu betritt nicht immer wieder die Sprache wählen muss. Da aber nicht bei allen Usern Coockies aktiviert sein müssen, wird zusätzlich eine Session-Variable mit der Sprache angelegt. Diese erlischt aber ja mit der Zeit. Daher soll wenn die Cookies deaktiviert sind und keine Session-Variable gesetzt ist die Sprache auch per URL-Erweiterung übertragen werden.
Wenn jetzt z.B. ein User aus England einem Deutschen einen Link schickt in welchem die Sprache auf EN gesetzt ist, soll trotzdem vorher geprüft werden ob ein Cookie oder Session mit einer anderen Spracheinstellung existiert, die die Einstellung der URL dann überschreibt.
Kurz gesagt möchte ich das in etwa so:
if (isset($_REQUEST['language'])) { $language = $_REQUEST['language']; setcookie('language', $_REQUEST['language']); $_SESSION['language'] = $_REQUEST['language']; } else { $language = 'EN'; setcookie('language', $language); $_SESSION['language'] = $language; }
Wobei die Priorität wie folgt aussehen sollte (von Höchste zu Niedrigste): Cookie, Session; URL
Zum Code: Mir ist bewusst das da Fehler drin sein könnten. Habe ihn nur eben schnell runtergetippt
Gruß
DCBlaze
Nachtrag: Mir ist grade aufgefallen das ich die SESSION-Abfrage im Code-Block vergessen habe. Die würde ich im fertigen Code natürlich hinzufügen.
Beitrag geändert: 22.10.2008 13:16:22 von dcblaze -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage