我有更多来自$ _POST的值(超过20),就像这样......
$name = $_POST['name'];
$username = $_POST['username'];
$city = $_POST['city'];
$mobile = $_POST['mobile'];
$address = $_POST['address'];
注意:我已经阻止了SQL注入的值。
我的问题是我能否知道有没有办法在SESSION中同时存储所有这些POST值? 而不是这种方法..
$_SESSION['name'] = $name;
等
任何答案都将受到高度赞赏。 谢谢。
答案 0 :(得分:22)
$_SESSION['post-data'] = $_POST;
这将在单个会话变量中创建一个post值数组。这些值可以作为
访问$_SESSION['post-data']['name']
$_SESSION['post-data']['username']
...
答案 1 :(得分:8)
您可以将一个数组添加到另一个数组
$_POST
和$_SESSION
只是数组
请注意,第二个数组中的键在重复时具有优先权。
$_SESSION += $_POST;
但是,我没有看到这个结局很好,因为客户端可以向会话注入他想要的任何东西,E.G。劫持您的用户会话ID。
答案 2 :(得分:2)
如果您要查找使用与发布数组相同的键设置的会话变量,您可以使用:
foreach ($_POST as $key => $value) {
${$key} = $value;
$_SESSION[$key] = $value;
}
这将使您的$ _POST数组基于数组键变为变量,并同时设置会话。然后,您可以使用name
或$_SESSION['name']
访问$name
帖子。
这意味着您不再需要使用:$name = $_POST['name'];
了。由于上面的代码将为您设置名称变量,并设置会话变量。
答案 3 :(得分:0)
通过php中的表单发布或标题位置重定向传递变量的最佳解释,请查看此主题中的答案:How to pass variables received in GET string through a php header redirect?