2

我知道这个标题与 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 的错误日志文件,但没有看到任何相关内容。任何帮助将不胜感激!

4

2 回答 2

4

固定的:

找到解决方案后我觉得很愚蠢,但@webgal 是对的。我还需要将 session_start() 放在 < !DOCTYPE HTML> 之前。我把它放在它的正下方和 html 标记的上方。我要感谢大家的时间、耐心和努力,并对我的无知表示诚挚的歉意!

于 2013-05-07T18:26:28.890 回答
2

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

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

于 2013-05-07T15:27:43.810 回答