显示他已注销的用户

时间:2017-05-15 08:03:36

标签: php mysql session login logout

我想要这样:如果用户注销(会话销毁),则索引应该说:您已注销。

if (isset($_SESSION['user']) && $_SESSION['user'] == true) {
echo "Welcome on the users page!, " . $_SESSION['username'] . "!";
    } 
    elseif (!isset($_SESSION['user'])) {
    echo "You logged out..";}

我遇到的问题是,当您尚未登录以便能够退出时,它还会显示您已退出。我只希望它显示用户是否注销。

我也只想要"你已经退出"出现一次。如果你刷新页面,那就应该消失了

2 个答案:

答案 0 :(得分:0)

这是因为以下条件:

!isset($_SESSION['user']

无论用户是否登录,都是如此。因此,您必须创建一些其他会话变量来检查用户是否已注销。并且仅在用户注销时设置。

例如:

if( !isset($_SESSION['user'] && isset($_SESSION['logged_out']))
{
    // isset($_SESSION['user'] to check if user logged out and extra condition to check if user comes here after logged-out.
}

并在索引页面上查看。

答案 1 :(得分:0)

而不是使用php unset();用于销毁会话的函数,实际上可以在$ _SESSION [“user”]中保存布尔“false”;

例如,在您的注销页面中:

而不是销毁,将session设置为false

例如:

``     //退出时     $ _SESSION [“user”] = false;

//now to check if user logged out

if($_SESSION["user"] === false) {

echo "you logged out";

}elseif(!isset($_SESSION["user"])) {//when the session finally expires
echo " you haven't logged in";

}else{
echo "you are logged in";
}


 //to get rid of it after page reload,    you need to unset the SESSION


unset($_SESSION["user"]);