首页 > 解决方案 > html/php 下拉菜单无法正常工作

问题描述

<li class="dropdown">
  <a href="signin.php" class="dropbtn">Account</a>
  <div class="dropdown-content">
  <?php
    if(isset($_SESSION['on'])) {
      echo '<a href="logout.php">Log out</a>';
    }
    else if (!isset($_SESSION['on'])) {
      echo '<a href="signin.php">Sign in</a>';
      echo '<a href="signup.php">Sign up</a>';
    }
  ?>
  </div>
</li>

因此,这应该做的是,当您未登录时,您会看到登录和注册下拉按钮,而不是注销。这部分有效。但是,一旦您登录,它就不会显示注销按钮,而是仅显示登录和注册按钮。我该如何解决?

标签: phphtml

解决方案


session_start 需要可用于启动或获取会话,这需要放在页面上 php 的开头。如果您正在检查 isset 则 else 已经是未设置会话时会发生的结果,所以我删除了

else if (!isset($_SESSION['on'])) 

并用一个简单的 else 替换它。

session_start();
if(isset($_SESSION['on'])) {
  echo '<a href="logout.php">Log out</a>';
} else {
  echo '<a href="signin.php">Sign in</a>';
  echo '<a href="signup.php">Sign up</a>';
}

请记住返回并在您设置会话开始的页面上使用 session_start()。


推荐阅读