无法将数组保存到会话,结果为空


Cannot save array to session, comes up empty

如果你能让这个简单的SESSION VARIABLES示例发挥作用,我会拥抱你的
我根本无法让会话变量在我的网站上工作。我在Windows7上运行php5,使用Chrome浏览器。

这是发送页面:

    <?php
     session_start();
     $red='red';
     $blue='blue';
     $green='green';
     $SESSVARS=array($red,$blue,$green);
     $_SESSION['USERVARS']= $SESSVARS; 
     ?>
 <p>Set Sessionvars</p>
 <form action="SessVarCheck.php" method="post">
 <input name="Submit" type="submit">
 </form>

这是结果页面:

   <?php
    session_start();
    echo "val 1:".$_SESSION['USERVARS'][0];
    echo "val 2:". $_SESSION['USERVARS'][1];
    echo "val 3:". $_SESSION['USERVARS'][2];
   ?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SessVarCheck.php</title>
</head>
<body>
The Result page
</body>
</html>

我听到三个回声都是空的。欢迎有任何想法!

确保对session_start()的调用发生在两个页面上的任何页面内容输出之前。(请参阅此处的"注意"部分)

(我想你可能已经知道了,但鉴于我在发送页面上没有看到"<html>",我认为该脚本可能还有更多内容。此外,我不知道这个要求有多敏感-仅php标记之前的空格可能就足以成为问题。)

尝试一些事情:

1) 在你的结果页面上做一个var_dump($_SESSION),看看会话的原始内容是什么

2) 验证会话是否正常工作。在session_start()调用之后的某个位置,将echo "SessionID: " . session_id();添加到两个脚本中。如果你在每个页面上都没有得到相同的会话ID,那么你每次都会得到一个新的会话,这很可能是cookie问题。