我正在进行一个10个问题的调查,一个问题。我做了一个在问题之间传递价值的会议。我发现的事情是,即使页面刷新,会话值也不会被破坏。有没有解决方法,或者我做错了什么。
只是为了说清楚,这是代码:
session_start();
// $_SESSION['score'] = $score;
$_SESSION['qnum'] = isset($_SESSION['qnum']) ? $_SESSION['qnum']+1 : 1;
if ($_SESSION['qnum'] < 10){
$_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total']+$score : $score;
}
else if ($_SESSION['qnum'] == 10){
$_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total']+$score : $score;
echo "finished";
}
echo $_SESSION['qnum'];
echo '\n';
echo $_SESSION['total'];
答案 0 :(得分:5)
$ _ SESSION变量将保留,直到您终止会话或取消设置()会话变量。
要结束会话,请尝试以下代码:
$_SESSION = array();
session_unset();
session_destroy();
要删除会话变量,请使用:
unset($_SESSION['variablename']);
答案 1 :(得分:2)
这是会议的重点 - 他们坚持浏览会议。您使用它们就像普通的变量一样,这让我问:为什么不使用普通变量呢?
答案 2 :(得分:0)
这是会话变量的整体美和概念,它不会破坏直到或除非你破坏或取消它。 问题是什么,你的代码是完全正确的,你将问题编号和总分保存为会话变量并得分为本地。只需在测验结束时做一件事使用sesion_destroy()
破坏会话答案 3 :(得分:0)
隐藏变量可能是一个更好的工具,可用于您的目的。会话变量本质上是为了持续整个应用程序 session 。