【问题标题】:$_REQUEST in PHPPHP 中的 $_REQUEST
【发布时间】:2015-03-22 14:31:24
【问题描述】:

我有这个代码。

$message = "";

if($_REQUEST['msg'] == "new"){
    $message = "New User has been added successfully";
}else if($_REQUEST['msg'] == 'edit'){
    $message = "User has been saved successfully";
}else if($_REQUEST['msg'] == 'update'){
    $message = "User(s) has been Updated successfully";
}

谁能在这里告诉我什么是['msg'],请解释一下$_REQUEST的功能?

【问题讨论】:

  • msg 是表单元素的名称,类似 <input name="msg" value="new" /> 的名称会匹配
  • PHP 确实有你知道的文档:php.net/manual/en/reserved.variables.request.php
  • 先生,我知道..........但我无法理解这一点。我想要简单的语言。
  • $_REQUEST 是一个超全局变量,其中包含来自 HTML 表单的数据。注意:如果您正在寻找更简单的教程,如果您难以阅读官方手册,您可能会发现此站点非常有用。 w3schools.com/php/php_superglobals.asp

标签: php request


【解决方案1】:

$_REQUEST 是一个超级全局数组。就像 $_GET、$_POST、$_COOKIE、$_SESSION 等。这意味着它可以以数字方式或关联方式存储列表信息。

例如: 联想: $array = array(key->value, key->value); 数字: $array = array([0]->value, [1]->value);

在 $_REQUEST 或 $_POST 或 $_GET 的情况下,这些数组将存储发送到 PHP 标头的编码数据。

例如: $_REQUEST['key'] = value;

你有一个导航项: <a href='?key=value'>value</a> //for $_GET

PHP 会将该 key->value 编码到 url 中,并将其保存到您正在使用的超级全局数组中。要访问它,请调用: echo $_REQUEST['key']; //returns 'value'

到目前为止,您的情况 msg 尚未编码到浏览器。它需要通过不同的方式(表单、href 等)传递。所以,

 $_REQUEST['msg'] = 'new';
 if(isset($_REQUEST['msg'])){       //use isset() to avoid an error
    if($_REQUEST['msg'] == "new"){
        $message = "New User has been added successfully";  
    }else if($_REQUEST['msg'] == 'edit'){
        $message = "User has been saved successfully";
    }else if($_REQUEST['msg'] == 'update'){
        $message = "User(s) has been Updated successfully";
    }
}                           //returns $message = "New user..."

不建议使用$_REQUEST,因为它很难控制处理哪些信息。 $_GET 请求在 url 中显示 key->value 对。您不希望看到的信息可能不应该在那里显示。使用 $_REQUEST,用户可以通过 url 发送该键-> 值对,以查看需要传递哪些信息并以其他方式利用该信息(谷歌跨站点请求伪造)。

TL;DR : $_REQUEST['msg'] -- 'msg' 是键-> 值对中的键('new'| 'edit' | 'update' 是值)

$_REQUEST 是一个超全局数组,用于保存用户可以在网站其他部分的任何范围内使用的值。

【讨论】:

    【解决方案2】:

    $_REQUEST 包含通过 post、get 和/或 cookie 传递的值。由于 get 很容易破解,因此在将数据从一个 html/php 文件发送到另一个文件时使用 post 是更安全的机制。然后你需要使用 $_POST 来获取数据。更多详细信息,您可以在此link 中找到。

    因此,在您的情况下,之前的 html 页面使用了其中一种技术来使用名为 msg 的变量/参数/cookie 来传递数据。

    【讨论】:

      【解决方案3】:

      $_REQUEST['msg'] 是来自超全局数组的键。 即使变量是通过 $_POST 或 $_GET 发送的,基本上 $_REQUEST 也会访问它:

      $_POST : $_GET : page.php?msg=testMsg

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多