Hem $ _GET ve $ _POST veri olabilir zaman

4 Cevap

O $ _GET ve $ _POST hem de veri almak mümkün aslında? Ve nasıl bu $ _REQUEST içinde ne ile ilgisi nedir?

4 Cevap

Evet, bu mümkün. Böyle bir formu düşünün:

<form action="foobar.php?a=123&b=456" method="post">
    <input type="text" name="a" value="llama">
    <input type="text" name="b" value="duck">
    <input type="submit" name="go" value="Submit me!">
</form>

Bu formu göndererek üzerinde, $_GET["a"] == "123", $_GET["b"] == "456", $_POST["a"] == "llama", $_POST["b"] == "duck" ve $_POST["go"] == "Submit me!".

Bu $_REQUEST superglobal depends on the value of the request_order (veya eski variables_order) PHP yapılandırma ayarı, the php.ini documentation olarak açıklıyor ilgilidir nasıl.

Bu mümkün. request_order veya (bu unset ise) variables_order direktifi bir anahtar hem de ayarlandığında $_REQUEST öncelik alacak belirler.

Kesinlikle hem veri olabilir ... aşağıdaki (çok basit) sayfasını düşünün:

<body>
  <form method="post" action="params.php?myparam=myval">
    <input type="text" name="param1"></input>
    <input type="submit" name="submit" value="submit" />
  </form>
</body>

action şeklinde bir sorgu dizesi içerdiğine dikkat edin ve yöntem post. $_GET sorgu dizesi params içeren, $_POST formu params içerir, ve $_REQUEST hem dizileri birleştirilmiş parametreleri içerir:

array(3) {
  ["myparam"]=>
  string(1) "myval"
  ["param1"]=>
  string(0) ""
  ["submit"]=>
  string(6) "submit"
}

Çıkış request_order for controlling how the super-globals are processed in $_REQUEST.

Isimleri rağmen, $ _GET ve $ _POST gerçekten bir GET veya POST gerekmez, çünkü PHP mümkündür.

  • $ _GET Formu kodlanmış değişkenler olarak çözümlenen sorgu dizesi içerir.
  • $ _POST Formu kodlanmış değişkenler olarak ayrıştırıldı istek gövdesini içeren

Bu gerçek istek yöntem nedir önemli değil - bu bir PUT olabilir ve bu superglobals yine kalabalık olacaktı.