PHP 中的 $_REQUEST
$_REQUEST in PHP
我有这个代码。
$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 包含由 post 传递的值,获取 and/or cookie。由于 get 很容易破解,因此更安全的机制是在将数据从一个 html/php 文件发送到另一个文件时使用 post。然后你需要使用 $_POST 来获取数据。您可以从中找到更多详细信息 link.
因此在您的情况下,之前的 html 页面使用了其中一种技术来使用 variable/parameter/cookie 命名的 msg 来传递数据。
$_REQUEST['msg'] 是超全局数组中的一个键。
基本上 $_REQUEST 将访问它,即使变量是通过 $_POST 或 $_GET 发送的:
$_POST :
$_GET : page.php?msg=testMsg
$_REQUEST 是一个超级全局数组。就像 $_GET、$_POST、$_COOKIE、$_SESSION 等。这意味着它可以以数字或关联的方式存储列表信息。
例如:
联想:
$array = array(key->value, key->value);
数字:
$array = array([0]->value, [1]->value);
在 $_REQUEST 或 $_POST 或 $_GET 的情况下,这些数组将存储发送到 PHP header 的编码数据。
例如:
$_REQUEST['key'] = value;
或
您有一个导航项:
<a href='?key=value'>value</a> //for $_GET
PHP 会将键->值编码为 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 中的键->值对。您不希望显示的信息可能不应该显示在那里。使用 $_REQUEST,用户可以通过 url 发送该键->值对,以查看需要传递哪些信息并以其他方式利用该信息(google cross-site 请求伪造)。
TL;DR : $_REQUEST['msg'] -- 'msg' 是键->值对中的一个键 ('new'| 'edit' | 'update' 是值)
$_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 的功能?
$_REQUEST 包含由 post 传递的值,获取 and/or cookie。由于 get 很容易破解,因此更安全的机制是在将数据从一个 html/php 文件发送到另一个文件时使用 post。然后你需要使用 $_POST 来获取数据。您可以从中找到更多详细信息 link.
因此在您的情况下,之前的 html 页面使用了其中一种技术来使用 variable/parameter/cookie 命名的 msg 来传递数据。
$_REQUEST['msg'] 是超全局数组中的一个键。 基本上 $_REQUEST 将访问它,即使变量是通过 $_POST 或 $_GET 发送的:
$_POST : $_GET : page.php?msg=testMsg
$_REQUEST 是一个超级全局数组。就像 $_GET、$_POST、$_COOKIE、$_SESSION 等。这意味着它可以以数字或关联的方式存储列表信息。
例如:
联想:
$array = array(key->value, key->value);
数字:
$array = array([0]->value, [1]->value);
在 $_REQUEST 或 $_POST 或 $_GET 的情况下,这些数组将存储发送到 PHP header 的编码数据。
例如:
$_REQUEST['key'] = value;
或
您有一个导航项:
<a href='?key=value'>value</a> //for $_GET
PHP 会将键->值编码为 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 中的键->值对。您不希望显示的信息可能不应该显示在那里。使用 $_REQUEST,用户可以通过 url 发送该键->值对,以查看需要传递哪些信息并以其他方式利用该信息(google cross-site 请求伪造)。
TL;DR : $_REQUEST['msg'] -- 'msg' 是键->值对中的一个键 ('new'| 'edit' | 'update' 是值)
$_REQUEST是一个超全局数组,保存用户在网站其他部分任意范围内可以使用的值。