会话变量未传递到下一页 - session_start() 已启动



我不知道为什么我的会话变量没有被转移到下一页。

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();

似乎对我有用!

相关内容

最新更新