Wann kann es Daten sowohl in $ _GET als auch in $ _POST geben?

7

Ist es tatsächlich möglich, Daten sowohl in $ _GET als auch in $ _POST zu erhalten? Und wie verhält es sich mit dem, was in $ _REQUEST ist?

    
Don 15.11.2009, 06:28
quelle

4 Antworten

16

Ja, das ist möglich. Betrachten Sie ein Formular wie folgt:

%Vor%

Beim Senden dieses Formulars: $_GET["a"] == "123" , $_GET["b"] == "456" , $_POST["a"] == "llama" , $_POST["b"] == "duck" und $_POST["go"] == "Submit me!" .

Wie dies mit dem $_REQUEST Superglobal zusammenhängt, hängt vom Wert des request_order (oder die ältere variables_order ) PHP-Konfigurationseinstellung, wie der PHP .ini Dokumentation erklärt.

    
bcat 15.11.2009, 06:33
quelle
2

Es kann definitiv Daten in beiden geben ... Betrachten Sie die folgende (sehr einfache) Seite:

%Vor%

Beachten Sie, dass das action des Formulars eine Abfragezeichenfolge enthält und die Methode post lautet. $_GET enthält die Abfragezeichenfolge params, $_POST enthält die Formularparameter und $_REQUEST enthält die zusammengeführten Parameter beider Arrays:

%Vor%

Sehen Sie sich request_order an, um zu steuern, wie der Super Globals werden in $_REQUEST verarbeitet.

    
jheddings 15.11.2009 06:37
quelle
1

Es ist möglich. Die request_order - oder (falls nicht gesetzt) variables_order -Direktive bestimmt, welche Priorität in $_REQUEST Vorrang hat, wenn in beiden ein Schlüssel gesetzt ist.

    
outis 15.11.2009 06:34
quelle
0

In PHP ist das möglich, weil $ _GET und $ _POST trotz ihrer Namen nicht unbedingt GET oder POST benötigen.

  • $ _ GET enthält den querystring, der als formcodierte Variablen analysiert wird.
  • $ _ POST enthält den Anfragetext, der als formcodierte Variablen
  • analysiert wurde

Es spielt keine Rolle, was die tatsächliche Anforderungsmethode ist - es könnte ein PUT sein und diese Superglobals würden immer noch gefüllt werden.

    
Ciaran McNulty 15.11.2009 09:28
quelle

Tags und Links