Php 向用户显示他已注销

Php 向用户显示他已注销,php,mysql,session,login,logout,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..";} 我遇到

我想要这样:如果用户注销(会话破坏),那么索引应该说:您已注销

if (isset($_SESSION['user']) && $_SESSION['user'] == true) {
echo "Welcome on the users page!, " . $_SESSION['username'] . "!";
    } 
    elseif (!isset($_SESSION['user'])) {
    echo "You logged out..";}
我遇到的问题是,它还显示您在甚至还没有登录就可以注销时已注销。我只想让它显示用户是否注销


此外,我只希望“你已注销”显示一次。如果刷新页面,则由于以下情况,该页面应消失:

!isset($_SESSION['user']
无论用户是否登录,都是如此。因此,您必须创建一些其他会话变量来检查用户是否已注销。这仅在用户注销时设置

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

并在索引页上检查此项。

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

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

将会话设置为false而不是销毁

例:

`` //注销时 $\u会话[“用户”]=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"]);

如果希望快速修复,则应在默认情况下将$\u会话['user']设置为false,然后在用户注销时将其取消设置。但它不是很干净。。。或者定义另一个会话变量,以便只弹出一次错误消息。我知道我的代码错误的原因,但如何检查用户是否已注销?现在可以工作,只需在刷新时找到如何清除它。谢谢。你可以通过实际销毁$_会话['user']来摆脱它;检查更新的答案