我有这段代码。
$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的功能?
答案 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