PHP会话变量未传递到下一页

时间:2013-05-07 15:23:24

标签: php session variables

我知道这个标题与1000个与问题相关的其他帖子重复,如果解决方案在那里,我会提前道歉。相信我,我经历了很多关于这个主题的帖子,并尝试了所有规定的解决方案,但没有运气。

我正在尝试通过第1页中的以下代码创建SESSION变量:

<?php
  $conditionArray = array('Past', 'Past', 'Future', 'Future');
  $typeArray = array('Gains', 'Gains', 'Losses', 'Losses');
  shuffle($conditionArray);
  shuffle($typeArray);
  session_start();
  $_SESSION['conditionArray'] = implode(',',$conditionArray);
  $_SESSION['typeArray'] = implode(',',$typeArray);
  var_dump($_SESSION);
?>
<html>
<body>
</body>
</html>

现在var_dump显示以下内容:

array(2) { ["conditionArray"]=> string(23) "Future,Past,Past,Future" ["typeArray"]=> string(25) "Gains,Gains,Losses,Losses" }

哪个好。

在下一页上,我试图通过以下代码检索变量:

<?php
  session_start();
  echo $_SESSION['typeArray'];
  var_dump($_SESSION);
?>
<html>
<body>
</body>
</html>

它给了我:

array(0) { }

我试着查看php的错误日志文件,我没有看到任何相关内容。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

<强> FIXED:

找到解决方案后我感到相当愚蠢,但@webgal是对的。 我需要在&lt;之前放置session_start() !DOCTYPE HTML&gt;同样。我把它放在它下面和html标签上方。我要感谢你们所有的时间,耐心和努力,真诚地为我的无知道歉!

答案 1 :(得分:2)

这可能是权限问题。检查会话的写入位置(ini文件中的session.save_path)。通常它位于/ tmp文件夹中。但如果它设置为另一个文件夹而您的Web服务器没有写入权限,则可能会遇到此问题。

此外,在下一页打印session_id()以检查您的会话是否已开始。