kostenloser Webspace werbefrei: lima-city


$_REQUEST

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    d*****e

    Hi,
    habe grade gelesen das $_REQUEST die Befehle $_GET, $_POST und $_COOKIE ersetzt (letzeres war mir neu :biggrin: ). 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 :biggrin:

    Gruß
    DCBlaze
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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/
  4. Autor dieses Themas

    d*****e

    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 :biggrin:

    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
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!