我不知道为什么我的会话变量没有被转移到下一页。
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);
它给我一个空数组。
知道这是为什么吗?
我最近遇到了这个问题。会话没有通过,您需要调用正在加载的页面上的session_start来引用会话变量。
只是为了给其他人看,添加
session_regenerate_id(TRUE);
下session_start();
似乎对我有用!