通过会话切换登录和注销


login and logout toggle via session

大家好,我正在做一个学校项目。 我想在用户登录时切换一个类。我让会话工作,javascript 正在检测会话,但类没有切换。这是我的代码

<script language='javascript' type='text/javascript'>
 var userid = "<?php echo $username; ?>";//username is the session variable
 if (userid==(""))//indicaates that no one is logged in
 $('#det_login').toggleClass('hide'); 
 else
 $('#det_logout').toggleClass('hide');
</script>

<li id="det_login"><a href="javascript:login('show');" class="nav2"> login</a><li>
<li id="det_logout" class="hide"  ><a href="javascript:login2('show');" class="nav2"><?= $username ?> logout</a><li>

请伙计们,我真的很感激你们的帮助。谢谢

谢谢你们的帮助,这就是我所做的。它没有明显的切换,因为我在显示语句上方有 javascript。

                                <li id="det_login" class="show"   ><a href="javascript:login('show');" class="nav2">
login</a><li>
                         <li id="det_logout" class="show"  ><a href="javascript:login2('show');" class="nav2"><?= $username ?>
 logout</a><li>
<script language='javascript' type='text/javascript'>
 var userid = "<?php echo $username; ?>";
 if (userid==(""))
 {
 $('#det_logout').addClass('hide'); 
  $('#myaccount').addClass('hide');
   $('.divider2').addClass('hide');
 }
 else
$('#det_login').addClass('hide');
</script>

首先,你正在做的事情不是正确的做事方式。

我认为您要做的是,如果用户已登录,则设置会话变量。如果此用户已登录,则尝试显示/隐藏某些内容,反之亦然。

对于切换,这部分就足够了。我建议不要使用切换,因为它已被弃用。

var flag = false;
$(document).on('click', '.login', function(event) {
    if (flag) {
        // logged in code
    }else{ //in your case if (userid==(""))
        // logout code
    }
    flag = !flag;
});

更简单的方法:

<script>
    var is_logged_in = "<?php echo $_SESSION['log_status'] ?>"; //$_SESSION['log_status']=true..assume
    if (is_logged_in) {
        //your code..$(".class or #id").addClass("xyz");//show,hide or any appropriate action
    } else {
        //some other action
    }
</script>