我有更多的值(超过 20 美元)来自 $_POST 像这样...
$name = $_POST['name'];
$username = $_POST['username'];
$city = $_POST['city'];
$mobile = $_POST['mobile'];
$address = $_POST['address'];
注意:我已经阻止了SQL注入的值。
我的问题是我可以知道有没有办法一次将所有这些 POST 值存储在 SESSION 中吗?而不是这种方法..
$_SESSION['name'] = $name;
等
任何答案将不胜感激。谢谢。
$_SESSION['post-data'] = $_POST;
这将在单个会话变量中创建帖子值数组。这些值可作为
$_SESSION['post-data']['name']
$_SESSION['post-data']['username']
...
您可以将一个数组添加到另一个数组。
$_POST
和$_SESSION
只是数组。
请注意,在出现重复项时,第二个数组中的键优先。
$_SESSION += $_POST;
但是,我认为这个结局并不好,因为客户端可以将他想要的任何内容注入会话,例如劫持您的用户会话 ID。
如果您查找使用与发布的数组相同的键设置的会话变量,则可以使用以下内容:
foreach ($_POST as $key => $value) {
${$key} = $value;
$_SESSION[$key] = $value;
}
这将使您的 $_POST 数组根据数组键转换为变量,并同时设置会话。然后,您可以使用$_SESSION['name']
或$name
访问name
帖子。
这意味着您将不再需要使用:$name = $_POST['name'];
。由于上面的代码将为您设置名称变量并设置会话变量。
在
php 中使用表单帖子或标头位置重定向传递变量的最佳解释 查看我在此线程中的答案: 如何通过 php 标头重定向传递 GET 字符串中收到的变量?