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>