PHP $_REQUEST
$_REQUEST
$_REQUEST 是 PHP 的一个超全局变量,它包含了提交的表单数据和所有的 cookie 数据。
换句话说,$_REQUEST 是一个数组,包含来自 $_GET、$_POST 和 $_COOKIE 的数据。
你可以通过 $_REQUEST 关键字加上表单字段或 cookie 的名称来访问这些数据,像这样:
$_REQUEST['firstname']
在 $_POST 请求中使用 $_REQUEST
POST 请求通常是来自 HTML 表单提交的数据。
以下是一个 HTML 表单可能的样子:
HTML 表单
<html> <body> <form method="post" action="demo_request.php"> Name: <input type="text" name="fname"> <input type="submit"> </form> </body> </html>
当用户点击提交按钮时,表单数据会发送到 <form> 标签的 action 属性中指定的 PHP 文件。
在 action 文件中,我们可以使用 $_REQUEST 变量来收集输入字段的值。
PHP 文件
$name = $_REQUEST['fname']; echo $name;
在下例中,我们将 HTML 表单和 PHP 代码放在同一个 PHP 文件中。
我们还添加了一些额外的安全行。
实例
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = htmlspecialchars($_REQUEST['fname']);
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
在 $_GET 请求中使用 $_REQUEST
GET 请求可以是表单提交,就像上面的示例一样,但 HTML <form> 元素的 method 属性设置为 GET。
GET 请求也可以来自查询字符串(在 URL 地址后添加的信息)。
以下是一个带有查询字符串的 HTML 超链接可能的样子:
HTML 链接
<html> <body> <a href="demo_phpfile.php?subject=PHP&web=w3school.com.cn">测试 $GET</a> </body> </html>
当用户点击链接时,查询字符串数据会被发送到 demo_phpfile.php。
在 PHP 文件中,我们可以使用 $_REQUEST 变量来收集查询字符串的值。
实例
PHP 文件 demo_phpfile.php:
<html> <body> <?php echo "Study " . $_REQUEST['subject'] . " at " . $_REQUEST['web']; ?> </body> </html>