我希望在用户登录时显示我的注销表单(包含注销按钮),否则隐藏。 我使用这段代码:
<?php
if(isset($_SESSION['logged_in'])) {
//show logout form
?>
步骤中的问题:
退出时会发生同样的事情。当我自己刷新页面时,注销表单(和登录表单)仅隐藏/显示。
任何可能的解决方案?
答案 0 :(得分:1)
经过一些测试并潜入php.net后,我自己找到了答案。对于任何会遇到同样问题的人:
为每个Cookie设置其实时时间。当没有时间填写时,cookie将在会话结束时被销毁。
setcookie('username', $username); //NOT (no point at all in making this)
setcookie('username', $username, time()+ 60*60*24*30 ); //YES
session_destroy()会破坏会话但不会取消设置任何会话变量。因此,例如在注销时,您必须取消设置会话:
unset($_SESSION['logged_in']);
session_destroy(); //and then destroy session if needed
答案 1 :(得分:0)
尝试此模式Post/Redirect/Get。
您只需发布登录信息,执行逻辑并将用户重定向到登录页面(或登录前的任何位置)。这样可以确保刷新用户浏览器(因此他/她被重定向到另一个页面)