当我登录并点击退出按钮时,它成功将我退出并恢复正常,即显示登录表单。完美!
但是,如果我登录并转到另一个页面(其中包含session_start();)然后单击链接以返回登录页面,然后单击注销按钮,但这次它甚至虽然它让我退出,但用户名和注销按钮仍然停留在页面上,直到我点击刷新。
注销:
<?php
session_start();
session_unset();
session_destroy();
header('Location: login.php');
exit();
?>
登录页面:
<?php session_start();
if(empty($_SESSION['email'])) ?>
...html form...
}else { echo '<a href ="logout.php">logout</a>';
}
我不太确定问题所在,因为当我在同一页面上时,注销工作正常,但是当我返回时它部分工作。
编辑:我甚至尝试添加标题(“Refresh:0; url = login.php”);在注销但不知何故它不起作用。我需要手动点击刷新按钮将网页更改回已注销的视图。
答案 0 :(得分:0)
php手册推荐这个过程:
session_start();
$_SESSION = array();
session_destroy();
header( "location: index.php");
答案 1 :(得分:0)
这可能是一个缓存问题。即使重定向到index.php之后,如果浏览器缓存了index.php,它也会显示相同的信息。所以在你的index.php中输入:
header('Cache-Control: no-cache,must-revalidate',true);
使浏览器不缓存它。