我不确定为什么我的会话变量没有被转移到下一页。
在session_start();已被添加到两个页面,如果我在第一页上转储会话,我得到了我期望的数组。
当我重定向到下一页时,session_id保持不变,但数组为空。
以下是代码:
session_start();
if (isset($_POST['submit'])){
$price=check_input($_POST["price"]);
$number=$_POST['number'];
$activity=$_POST['activity'];
$_SESSION['price']=$price;
$_SESSION['number']=$number;
$_SESSION['activity']=$activity;
$index_query=mysql_query("SELECT id FROM activities WHERE people >= '$number' AND type='$activity' AND cost <= '$price' ORDER BY RAND() LIMIT 0,1;");
$index_fetch=mysql_fetch_assoc($index_query);
$activity_id=$index_fetch['id'];
header("Location: activity.php?id=".$activity_id."");
}
现在,我在标题重定向上方添加了以下内容,以查看会话是否携带任何内容,并打印出正确的信息。
var_dump($_SESSION);
die();
然而,当我删除它并让它重定向到第2页时,
session_start();
var_dump($_SESSION);
它给了我一个空数组。
为什么会这样?
答案 0 :(得分:0)
我最近遇到了这个问题。会话未通过,您需要在正在加载的页面上调用session_start以引用会话变量。
答案 1 :(得分:0)
只为其他人寻找,添加
session_regenerate_id(TRUE);
下面的
session_start();
似乎为我工作!