php - html/php 下拉菜单无法正常工作

标签 php html

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

所以这应该做的是,当您未登录时,您可以看到登录和注册下拉按钮,而不是注销。这部分有效。但是,一旦您登录,它不会显示注销按钮,而不会显示其他任何内容,而是仅显示登录和注册按钮。我该如何解决这个问题?

最佳答案

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

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 开始的页面上使用 session_start()。

关于php - html/php 下拉菜单无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50499189/

相关文章:

php - 从表中获取多个ID的最后插入数据?

javascript - 使用数据库中的值循环选项元素

html - Bootstrap 列顺序

javascript - 使用 Javascript 检查 2 个日期

php - 如何按它们共享的单个列(日期)对没有关系和不同列的两个表进行排序

c# - 如何使用 iTextSharp 设置 HTML 表格的背景颜色以输出为 PDF

php - AJAX:跳转到由 PHP 使用 xmlhttp.open 动态创建的页面中的另一个部分(onClick() 是否在 href 之前运行?)

php - 修改 PHP 代码以使用 TLS 而不是 SSL

javascript - 您能否生成一个用与 Python 或 PHP 服务器不同的语言编写的子进程,就像使用 Node.js 一样?

asp.net - 将所有图像隐藏在 DIV 中,除了没有滚动条的图像