所以我尝试在PHP中添加会话。我的网站有2页index.php和page.php index.php中的脚本是
<?php
if(!isset($_SESSION)){
session_start();
}
if (isset($_SESSION['counter'])) {
$_SESSION['counter']++;
} else {
$_SESSION['counter'] = 1;
}
echo $_SESSION['counter']."<br>";
?>
<html>
<body>
<a href="page.php">Go to page</a>
</body>
</html>
并且page.php中的脚本是
<?php
if(!isset($_SESSION)){
session_start();
}
if (isset($_SESSION['counter'])) {
$_SESSION['counter']++;
} else {
$_SESSION['counter'] = 1;
}
echo $_SESSION['counter']."<br>";
?>
<html>
<body>
<a href="index.php">Go to index</a>
</body>
</html>
当我打开index.php时,它打印计数器为1.我重新加载它几次,计数器得到很好的增加。然后,如果我继续使用page.php,它会显示正确的计数器值(最后在index.php + 1中看到的值)。我也重新加载那个页面几次,计数器仍然正常增加。但是,如果我现在继续使用index.php,它会将计数器显示为1,它应该显示在page.php + 1中显示的值lats
在我看来会话变量被破坏然后又开始了。我不希望这种情况发生。有关如何纠正它的任何线索?非常感谢任何帮助...
答案 0 :(得分:1)
在使用$_SESSION
之前,您应该start session。在您需要使用session_start();
页面的页面的顶部写下$_SESSION
。你需要开始会话page.php
&amp;使用index.php
之前的$_SESSION
页面无需使用isset()
启动会话。像这样:
session_start();
if (isset($_SESSION['counter'])) {
$_SESSION['counter']++;
} else {
$_SESSION['counter'] = 1;
}
echo $_SESSION['counter']."<br>";