我有这个代码。
$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的功能吗?
最佳答案
$_REQUEST
是一个超全局数组(来自 PHP 文档):
An associative array that by default contains the contents of $_GET, $_POST and $_COOKIE.
喜欢$_GET
, $_POST
, $_COOKIE
,和$_SESSION
,它可以关联地存储信息列表。以$_REQUEST
为例, $_POST
,和$_GET
这些数组将存储发送到 PHP header 的编码数据。
可能包含的内容示例(但不建议这样设置):
$_REQUEST['key1'] = 'value1';
$_REQUEST['streetAddress'] = '123 Baker St';
或者这里是一个从 GET 参数填充它的链接示例:
<a href='?key=value'>value</a> // for $_GET and $_REQUEST
PHP 将从 URL 中获取该键->值并将其保存到您正在使用的超全局数组中。要访问它,请调用:
echo $_REQUEST['key']; // displays 'value'
就您而言,到目前为止,浏览器还没有发送消息。它需要通过不同的方式(表单、href 等)传递。所以,
$_REQUEST['msg'] = 'new'; // not recommended to actually set it directly, purely illustrative of it already being set to something
if (isset($_REQUEST['msg'])) { // use isset() to avoid an error
if ($_REQUEST['msg'] == 'new') {
$message = 'New User has been added successfully';
} elseif ($_REQUEST['msg'] == 'edit') {
$message = 'User has been saved successfully';
} elseif ($_REQUEST['msg'] == 'update') {
$message = 'User(s) has been Updated successfully';
}
} // sets $message = "New user..."
使用$_REQUEST
不推荐。它违背了最佳实践,因为它使得很难控制处理哪些信息。 GET 参数、POST 参数和 cookie 都有不同的用途。最好决定您要处理的数据应来自哪些数据并使用 $_GET
, $_POST
,或$_COOKIE
因此。 $_GET
请求显示 URL 中的键->值对。您不希望可见的信息可能不应该显示在那里。 GET 适合指示用户正在访问的内容,但这样做并不等于请求的操作/更改。 POST 更适合用户请求执行某些操作(例如更新数据或发送电子邮件)时涉及的参数。在适当的时候使用 GET 而不是 POST 可以降低用户仅仅通过回击或为页面添加书签(例如意外地第二次购买某些东西)而意外地重新请求更改/操作的可能性,尽管它并不能完全消除这种情况可能性,因为这取决于浏览器在这些情况下是否重新发送 POST 数据。
如果您使用$_REQUEST
对于所有内容,用户可以通过 URL 发送键->值对,以查看需要传递哪些信息并以其他方式利用该信息(谷歌跨站点请求伪造)。相反,使用更具体的 $_GET、$_POST 和 $_COOKIE 变量会使他们尝试此操作变得更加困难。然而,使用这些实际上并不能保护您,因为您仍在处理 GET 参数、POST 参数或用户发送的 cookie。即便如此,最好限制代码在不同场景中处理哪些内容。最终,您仍然需要使用适当的技术来防止以危险的方式处理用户提供的值,但这是一个单独的主题。
TL;博士:$_REQUEST['msg']
-- 'msg' 是键->值对中的键('new'| 'edit' | 'update' 是值)。 $_REQUEST
是一个超全局数组,其中包含用户浏览器或其他客户端发送的 GET、POST 和 cookie 键和值。可以从 PHP 代码的任何部分访问它。
关于php - PHP 中的 $_REQUEST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195602/