会话变量未转入下一页 - session_start()已启动

时间:2015-06-02 21:38:45

标签: php variables session

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

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

它给了我一个空数组。

为什么会这样?

2 个答案:

答案 0 :(得分:0)

我最近遇到了这个问题。会话未通过,您需要在正在加载的页面上调用session_start以引用会话变量。

答案 1 :(得分:0)

只为其他人寻找,添加

session_regenerate_id(TRUE);

下面的

session_start();

似乎为我工作!