我为使用会话的网页编写了代码。我正在使用 Mac,它工作正常。我在 Windows 上尝试了我的页面,但会话似乎不起作用。事实证明,我声明的会话变量在其他页面中不存在。我session_start()
在我拥有的每一页的开头都使用了。我读到的关于这个问题的解决方案之一是使用session_write_close()
,但它不起作用。当我使用var_dump()
on时,$_SESSION
我只看到在同一页面中声明的那些(Mac 和 Windows 都是这种情况)。在 Windows 和 Mac 上,我使用 Chrome。我认为它在 Mac 上工作的原因之一是因为我没有收到错误,它只是工作,但是,在 Windows 上,我得到错误行,它说我正在使用的会话索引是未定义的。
我的情况有什么问题?我该如何解决?
编辑:
这是在会话中设置变量的代码,这是页面的第一个块
<?php
session_start();
session_destroy();
$_SESSION["contestant_name"]["topics_done"] = array( FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE ); // topics done
$_SESSION["contestant_name"]["topics_score_correct"] = array();
$_SESSION["contestant_name"]["topics_score_wrong"] = array();
$_SESSION["contestant_name"]["correct"] = 0;
$_SESSION["contestant_name"]["wrong"] = 0;
?>
这是读取变量的代码
<?php
session_start();
if (isset($_POST["submit"]))
$name = $_POST["name"];
if(!isset($_SESSION["contestant_name"]["name"]))
$_SESSION["contestant_name"]["name"] = $name;
// if ($_SESSION["contestant_name"]["name"] == "")
// $_SESSION["contestant_name"]["name"] = $name;
print $_SESSION["contestant_name"]["name"];
$arr = $_SESSION["contestant_name"]["topics_done"]; // getting it as null or empty
var_dump($_SESSION);
print count($arr);
print_r($arr);
?>
这是我在将会话变量存储在前一页之后尝试使用它们的地方。