PHP IF显示基于会话isset的HTML


PHP IF to display HTML based on session isset

我有下面的代码,它没有给出任何错误,但它只显示Logout按钮,我真的没有什么好说的了。

<?php
    if(isset($_SESSION)):?>
            <a href="endsession.php"><div class= "buttons feature">Logout</div></a>
    <?php    
    else:?>
        <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'"><div class= "buttons feature">LOGIN</div></a>
    <?php endif; 
?>

注销按钮运行:

<?php
session_start();
session_destroy();
?>

我的主页中有代码吗?它根据会话是否已设置来显示存储在会话中的值,这样我就知道它正在破坏会话,当我登录时,它也已设置。

我只是不明白为什么它总是只显示会话不存在的if中的html。

我可能犯了一个愚蠢的错误,很抱歉。

感谢所有帮助-Tom

尝试这个

if(isset($_SESSION) AND $_SESSION):?>
                <a href="endsession.php"><div class= "buttons feature">Logout</div></a>
        <?php    
        else:?>
        <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'"><div class= "buttons feature">LOGIN</div></a>
        <?php endif; ?>

设置$_SESSION

session_start();
$_SESSION['logged_in'] = true;

检查$_SESSION:

session_start();
if(isset($_SESSION['logged_in'])){
  echo "logged in";
}

始终设置$_SESSION变量,无论您是否已初始化会话。实际上,您必须在$_SESSION数组中键入一些内容才能得到结果。例如,在成功登录后执行以下操作:

$_SESSION['is_logged_in'] = true;

然后你可以检查

if(isset($_SESSION['is_logged_in']))

任何您想要的位置(而不是if(isset($_SESSION)))。