lixx: POST und GET oder doch REQUEST?

Hi Leute!

Gibt es einen vernünftigen Grund, warum man mit der $_POST- oder $_GET-Variable arbeieten sollte und nicht mit $_REQUEST?

lg lixx

  1. n'abend,

    Gibt es einen vernünftigen Grund, warum man mit der $_POST- oder $_GET-Variable arbeieten sollte und nicht mit $_REQUEST?

    ja: sauberer Programmierstil.

    Wenn du weisst wo ein Parameter her kommt (POST / GET / COOKIE / SESSION), dann möchtest du das entsprechende "Interface" dafür verwenden. (Interface ist doof, gemeint sind jedenfalls mal die superglobals $_GET, $_POST, [...])

    Wie du schon weisst wird $_REQUEST aus mehreren superglobals zusammengestellt. haben dabei $_GET und $_COOKIE beide den Eintrag 'var', dann wirst du über $_REQUEST nur an einen der beiden kommen (standardmäßig an den Inhalt von $_COOKIE, da die Mergingreihenfolge per default GPC [get, post, cookie] ist).

    weiterhin schönen abend...

    --
    wer braucht schon großbuchstaben?
    sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
    1. ok, danke!

    2. hallo,

      Gibt es einen vernünftigen Grund, warum man mit der $_POST- oder $_GET-Variable arbeieten sollte und nicht mit $_REQUEST?
      ja: sauberer Programmierstil.

      Das bedeutet alles und nichts gleichzeitig. Es kann durchaus sinnvoll sein, ein Script auf $_REQUEST reagieren zu lassen. Ich habe zum Beispiel bei der Zusammenstellung der Software für die Zitatesammlung häufiger $_REQUEST eingesetzt, beispielsweise in solchen Abfragen:
        if (in_array('aendern', $_REQUEST)) {
         bestaetigen();
        }
        if (isset($_POST['edit'])) {
         ...
        }

      Wenn du weisst wo ein Parameter her kommt (POST / GET / COOKIE / SESSION), dann möchtest du das entsprechende "Interface" dafür verwenden.

      Wenn du das aber nicht weißt, kann dir $_REQUEST helfen, das herauszufinden.

      Wie du schon weisst wird $_REQUEST aus mehreren superglobals zusammengestellt. haben dabei $_GET und $_COOKIE beide den Eintrag 'var', dann wirst du über $_REQUEST nur an einen der beiden kommen

      Und genau in einem solchen Fall ist $_REQUEST durchaus hilfreich, indem du einfach erstmal mit "isset" abfragst, ob da überhaupt ein Wert existiert. Ist das der Fall, kann das Script danach ja weiter differenzieren, ist es nicht der Fall, tut es eben irgendwas andres.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. n'abend,

        Und genau in einem solchen Fall ist $_REQUEST durchaus hilfreich, indem du einfach erstmal mit "isset" abfragst, ob da überhaupt ein Wert existiert. Ist das der Fall, kann das Script danach ja weiter differenzieren, ist es nicht der Fall, tut es eben irgendwas andres.

        ich habe die Benutzung von $_REQUEST nicht schwarzgemalt. Ich benutze es selbst zur Genüge. Die Frage des OP hörte sich (für mich) so an, als würde er $_GET und $_POST kategorisch nicht (mehr) benutzen wollen, da es ja $_REQUEST gibt. Und das will man schliesslich nicht.

        weiterhin schönen abend...

        --
        wer braucht schon großbuchstaben?
        sh:( fo:# ch:# rl:° br:> n4:& ie:{ mo:} va:) de:] zu:} fl:{ ss:? ls:[ js:|
        1. hallo,

          ich habe die Benutzung von $_REQUEST nicht schwarzgemalt.

          Nein, das hast du nicht.

          Die Frage des OP hörte sich (für mich) so an, als würde er $_GET und $_POST kategorisch nicht (mehr) benutzen wollen, da es ja $_REQUEST gibt. Und das will man schliesslich nicht.

          Richtig, es geht nicht um "Alternativen", also nicht darum, welche der superglobalen Variablen man gegen welche andere ausspielen sollte. Nimm aber mal deine und meine Aussage zusammen - dann kommt heraus, daß die Superglobals alle miteinander ihre Berechtigung haben, es aber auf ihren richtigen Einsatz ankommt. Daher habe ich den Threadtitel geändert, was hoffentlich auch auf dein Verständnis trifft.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Also ich finde die $_REQUEST Variable einen guten Ersatz für die POST und GET. Wenn man dann saubere Programmierung anspricht meine ich, dass es auch sauber ist, wenn sich keine P G C Variablen überschneiden.

            Auf die Idee bin ich erst gekommen, als ich eine Navigation durch Datensätze gemacht habe, wobei man mit einem select (also POST) sowie mit Links für Vor und Zurück (also GET) navigieren kann. Jetzt brauche ich nur eine Funktion, die mir dann die richtigen Datensätze ausspuckt und nur eine Abfrage der gewünschten Variable. Und jetzt verwende ich nur mehr die $_REQUEST.

            lg lixx

      2. echo $begrüßung;

        Wenn du weisst wo ein Parameter her kommt (POST / GET / COOKIE / SESSION), dann möchtest du das entsprechende "Interface" dafür verwenden.

        Wenn du das aber nicht weißt,

        Mir fallen auf Anhieb nur äußerst wenige Anwendungsfälle ein, wo ich als Programmierer nicht weiß, wo meine Daten herkommen. Möchtest du ein paar aufzählen?

        kann dir $_REQUEST helfen, das herauszufinden.

        $_REQUEST kann auch nicht helfen, herauszufinden, wo die Daten herkommen. Es hilft nur, darauf zuzugreifen und dabei ihre Herkunft zu ignorieren.

        echo "$verabschiedung $name";