php - 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>
因此,这应该做的是,当您未登录时,您会看到登录和注册下拉按钮,而不是注销。这部分有效。但是,一旦您登录,它就不会显示注销按钮,而是仅显示登录和注册按钮。我该如何解决?
解决方案
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()。
推荐阅读
- python - 如何使用 Visual Studio 环境变量运行 Python 代码
- r - expss 包中的显着性测试行
- python - shareplum 仅从 SharePoint 列表返回 7 列
- c++ - C++ 从按顺序执行的其他 constexpr lambda 创建 lambda 不能是 constexpr
- firebase - 如何摆脱这个错误?错误:没有创建 Firebase 应用“[DEFAULT]” - 调用 firebase.initializeApp()
- laravel - laravel 将数据动态卡到 1 模态
- java - activemq - javax.jms.IllegalStateException:AMQ219019:会话已关闭
- javascript - Sequelize Many to Many - 更新关联表
- javascript - 创建不带参数的 JavaScript 函数并使用点传递数据
- javascript - if 语句在单击时提示一个弹出框