2009-11-15 31 views
7

實際上是否可以在$ _GET和$ _POST中獲取數據?這與$ _REQUEST中的內容有什麼關係?

回答

16

是的,這是可能的。考慮這樣一種形式:

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

在提交這份表單,$_GET["a"] == "123"$_GET["b"] == "456"$_POST["a"] == "llama"$_POST["b"] == "duck",並$_POST["go"] == "Submit me!"

這如何涉及$_REQUEST超全局依賴於request_order(或舊variables_order)PHP配置設置的值,如the php.ini documentation解釋。

+0

所以,這使我能夠看到123駱駝和456只鴨子,而不用從我的桌子上站起來!涼。 – Don 2009-11-15 07:03:12

+0

當談到駱駝和鴨子時,樂意提供幫助。 :) – bcat 2009-11-15 07:09:06

1

這是可能的。 request_order或(如果未設置)variables_order指令確定在兩個設置密鑰的情況下哪個優先於$_REQUEST

2

有可能會變成數據在兩個......請看下面的(很簡單)頁:

<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包含查詢字符串,方法是post$_GET包含查詢字符串參數,可以$_POST包含表單參數,可以和$_REQUEST包含兩個陣列合併參數:

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

控制超級全局是如何在$_REQUEST處理退房request_order

0

它可能在PHP中,因爲儘管它們的名稱,$ _GET和$ _POST並不真的需要GET或POST。

  • $ _GET包含查詢字符串解析爲窗體編碼變量。
  • $ _ POST包含解析爲形式的編碼變量

不要緊實際的請求的方法是什麼請求主體 - 它可能是一個PUT和那些超全局仍然得到填充。