Guillermo: $_GET = $_REQUEST ?

Hallo,

was unterscheidet eigentlich die beiden im Titel genannten PHP-Felder zum Auslesen der Daten aus der Adresszeile? Oder benutzt man die synonym?

Grüße
Guillermo

  1. Hallo!

    $_REQUEST kannst du sowohl für GET als auch für POST verwenden...

    Gruss aus der SChweiz

    1. $_REQUEST kannst du sowohl für GET als auch für POST verwenden...

      Habe ich noch nicht verstanden.

      Vielleicht stelle ich meine Frage anders: Ich will aus meiner Adresszeile die Variablen auslesen. Gibt es einen Unterschied in der Verwendung von $_REQUEST und $_GET bzw. einen Grund das eine oder andere zu verwenden?

      1. Nein, AFAIK gibt es keinen Unterschied. Der Vorteil von $_REQUEST ist, dass wenn du nicht sicher bist, ob die Variable per POST-Formular oder einfach per GET-Übergabe übergeben wird, kannst du es verwenden. Aber wenn du sicher bist, dass es per GET übergeben wird, würde ich $_GET verwenden...

        1. hi,

          Nein, AFAIK gibt es keinen Unterschied. Der Vorteil von $_REQUEST ist, dass wenn du nicht sicher bist, ob die Variable per POST-Formular oder einfach per GET-Übergabe übergeben wird, kannst du es verwenden. Aber wenn du sicher bist, dass es per GET übergeben wird, würde ich $_GET verwenden...

          und das ist für dich _kein_ unterschied?

          gruss,
          wahsaga

      2. Hallo Guillermo!

        Habe ich noch nicht verstanden.

        Du kannst Formulare auf 2 Arten übermitteln: GET (die Formulardaten hängen an der URL dran) oder POST (die Formulardaten sind im HTTP-Header untergebracht). Nun kannst du deinem Skript sagen, dass es z.B. explizit NUR per GET übermittelte Formulardaten annehmen soll, dann verwendest du das $_GET, bei POST umgekehrt. Und wenn es dir egal ist, wie die Formulardaten zu deinem Skript gelangen dann kannst du das $_REQUEST verwenden, weil es einfach das nimmt "was da ist".

        [...] bzw. einen Grund das eine oder andere zu verwenden?

        Ja gibt es. Ein Beispiel was mir so spontan einfällt: Du möchtest sicher nicht, dass ein Formular mit Passwort-Feld per GET übertragen wird weil damit das Passwort im Klartext in der Adresszeile stehen würde bzw. sogar in der History zu finden wäre. Und um das gänzlich zu vermeiden, dass keine unsichen Passwörter, die in der Adresszeile stehen, anzunehmen verwendest du einfach $_POST statt $_REQUEST oder $_GET damit du auch wirklich NUR die sichere Methode über POST akzeptierst.

        MfG,
        Mirko Hansen

        1. Hallo Mirko

          Du kannst Formulare auf 2 Arten übermitteln: GET (die Formulardaten hängen an der URL dran) oder POST (die Formulardaten sind im HTTP-Header untergebracht).

          IIRC werden die Post-Daten im Body der Request-Entity übergeben...

          BTW: $_REQUEST ist laut http://www.php.net/manual/en/reserved.variables.php#reserved.variables.request

          "An associative array consisting of the contents of $_GET, $_POST, and $_COOKIE."

          $_REQUEST erfasst also nicht nur die per GET oder POST übergebenen Daten, sondern auch die in Cookies gespeicherten Werte.

          Schöne Grüße

          Johannes

          --
          ss:| zu:) ls:[ fo:) de:] va:) ch:? sh:( n4:& rl:( br:< js:| ie:{ fl:( mo:}