PHP中的$ _REQUEST

时间:2015-03-22 14:31:24

标签: php request

我有这段代码。

$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的功能?

3 个答案:

答案 0 :(得分:6)

$ _ 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-&gt;值编码到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-&gt;值对。您不希望看到的信息可能不应该显示在那里。使用$ _REQUEST,用户可以通过网址发送该key-&gt;值对,以查看需要传递哪些信息,并以其他方式利用该信息(谷歌跨网站请求伪造)。

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

$ _ POST: $ _GET:page.php?msg = testMsg