$_REQUEST是PHP中的一個超級全局變量,用于收集HTML表單提交的數據。
需要注意的是,使用$_REQUEST獲取表單數據時,需要確保表單的method屬性值為post或get。因為只有這兩種提交方式才會將數據傳輸到服務器端。
舉個例子,假設我們在前端頁面創建了一個表單:
<form action="submit.php" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="提交"> </form>
上面的表單中有兩個輸入框和一個提交按鈕。我們填寫完信息后點擊提交按鈕,表單數據將會被提交到submit.php文件。在submit.php文件中,我們可以使用$_REQUEST來獲取表單的數據:
$username = $_REQUEST['username']; $password = $_REQUEST['password'];
上面的代碼中,$username變量和$password變量分別保存了表單提交的用戶名和密碼。
需要注意的是,$_REQUEST包含了$_GET、$_POST和$_COOKIE中收集到的數據。如果兩種方法都使用,后者的值將覆蓋前者的值。
比如,如果同時收到GET和POST的數據,那么POST中的數據將會覆蓋GET中的數據。如果兩個數組中有相同的鍵名,則后者的值會覆蓋前者的值。代碼如下:
<form action="submit.php?name=test" method="post"> <input type="hidden" name="name" value="hello"> <input type="submit" value="提交"> </form>
在上面的代碼中,我們在form標簽中添加了一個屬性action="submit.php?name=test",意味著通過GET方法提交的時候會在URL后面加上name=test,效果就是URL會變成submit.php?name=test。然后在form標簽中添加了一個隱藏域input type="hidden" name="name" value="hello",使用POST方法提交的時候可以提交name=hello。
在submit.php文件中,我們可以使用以下代碼獲取表單數據:
$name1 = $_GET['name']; $name2 = $_POST['name']; $name3 = $_REQUEST['name'];
上面的代碼中,$name1變量獲取到了通過GET方法提交的name=test的值test。$name2變量獲取到了通過POST方法提交的name=hello的值hello。$name3變量獲取到了通過$_REQUEST獲取到的name=test。由于POST方法后面的數據可以覆蓋GET方法的數據,因此$name3的值為test。
總之,$_REQUEST是PHP中用于獲取HTML表單數據的超級全局變量。需要注意的是,只有表單的提交方式為post或get時,才能使用該變量獲取數據。在使用該變量的時候,需要注意POST方法可以覆蓋GET方法的值。