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>

运行实例