gpt4 book ai didi

php - PHP 中的 $_REQUEST

转载 作者:行者123 更新时间:2023-12-02 19:37:08 24 4
gpt4 key购买 nike

我有这个代码。

$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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com