$_REQUEST是PHP中用于獲取 HTTP請求提交中參數的一個超全局數組。這個數組對于接收用戶的輸入十分重要。我們來看一個例子,一個表單包括了一個文本框和一個提交按鈕,可以通過以下代碼來獲取用戶提交的表單信息:
<form method="post" action="form.php"> <input type="text" name="username"> <input type="submit" value="提交"> </form> <?php $username = $_REQUEST["username"]; echo "你輸入的用戶名是:" . $username; ?>
在上面的例子中,我們使用了$_REQUEST數組來獲取表單中提交的名稱為“username”的參數值。運行腳本后,我們可以看到頁面輸出了用戶輸入的用戶名。
雖然$_REQUEST非常方便,但是并不能保證我們的應用程序是安全的。因為$_REQUEST數組接收的值是從客戶端發送過來的,可以被攻擊者惡意篡改。因此,在處理用戶輸入之前,我們應該進行充分的驗證和過濾,保證我們的應用程序安全可靠。
除了$_REQUEST,PHP還提供了許多其他的超全局數組,如$_GET、$_POST、$_SERVER和$_COOKIE。這些數組分別用于獲取 GET 請求、POST 請求、服務器環境變量和 Cookies。以下是一個例子,用于演示$_GET數組:
<?php $name = $_GET["name"]; $age = $_GET["age"]; echo "你的名字是:" . $name . ",你的年齡是:" . $age; ?>
上面的例子中,我們假設客戶端發送的URL如下:
http://example.com/test.php?name=Tom&age=20
運行腳本后,我們可以看到頁面輸出了客戶端發送的name和age參數值。
需要注意的是,在使用超全局數組時,我們應該使用isset()方法檢查變量是否被定義。如果一個變量未被定義而我們試圖訪問它,PHP會發出一個警告并且返回NULL值。
<?php if(isset($_REQUEST["username"])) { $username = $_REQUEST["username"]; echo "你輸入的用戶名是:" . $username; } else { echo "請提交用戶名!"; } ?>
在上面的例子中,我們使用isset()方法來檢查客戶端是否提交了用戶名。如果提交了,則輸出用戶名,否則提示客戶端提交名字。
總之,$_REQUEST是PHP中一個十分重要的超全局數組,用于獲取 HTTP 請求中提交的參數。我們應該在處理用戶輸入之前進行充分的驗證和過濾,以保證我們的應用程序安全可靠。