如果你能让这个简单的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问题。