简体   繁体   English

向用户显示他已注销

[英]Showing the user that he has logged out

I want this: If the user logs out(session destroy) then index should say: You are logged out. 我想要这样:如果用户注销(会话销毁),则索引应显示:您已注销。

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

The problem I am having is that it also shows you logged out when you haven't even logged in to be able to log out. 我遇到的问题是,即使您没有登录才能注销,它也会显示您已注销。 I only want it to show if the user logs out. 我只希望它显示用户是否注销。

Also I only want "You are logged out" to show up once. 另外,我只希望“您已注销”出现一次。 If you refresh the page, it should be gone 如果刷新页面,该页面应该消失了

That is because of the following condition: 这是由于以下情况:

!isset($_SESSION['user']

This is true whether the user logged-in or not. 无论用户是否登录,都是如此。 So you have to make some other session variable to check for the user logged out. 因此,您必须设置其他会话变量以检查注销的用户。 And that is only set when the user logged out. 并且仅在用户注销时设置。

Ex: 例如:

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.
}

and check this on index page. 并在索引页面上检查。

Instead of using php unset(); 而不是使用php unset(); function to destroy a session, you can actually save boolean "false" in the $_SESSION["user"]; 函数销毁会话,实际上可以在$ _SESSION [“ user”]中保存布尔值“ false”;

For example, in you logout page: 例如,在您的注销页面中:

Instead of destroying, set session to false 将会话设置为false而不是销毁

Ex: 例如:

`` //When logging out $_SESSION["user"] = 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"]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM