PHP IF基于会话isset显示HTML

时间:2013-12-07 16:21:44

标签: php html session if-statement

我有下面的代码,没有错误,但它只显示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; 
?>

Logout按钮运行:

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

我的主页中是否有代码根据会话是否设置显示存储在会话中的值,所以我知道它正在破坏会话,当我登录时会设置它。

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

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

所有帮助表示赞赏-Tom

3 个答案:

答案 0 :(得分:0)

试试这个

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; ?>

答案 1 :(得分:0)

设置$_SESSION

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

检查$_SESSION

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

答案 2 :(得分:-1)

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

$_SESSION['is_logged_in'] = true;

然后你可以检查

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

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