【发布时间】:2020-03-22 20:10:27
【问题描述】:
我不是 PHP 专家,所以需要一点帮助。
我的网站上有一个登录功能,可以检查用户是管理员还是普通用户,效果很好。
我正在添加一个新功能,系统应检查用户是否已登录并显示不同的按钮。
- 如果用户未登录,则显示登录/注册按钮。
- 如果用户以用户身份登录,则显示 user.php 按钮和
注销.php - 如果用户是管理员,则显示 admin.php 和 logout.php
但是,它只对用户有效。我错过了什么? UserTypeID 在数据库中为用户设置 1,为管理员设置 2。
session_start();
<?php
if(isset($_SESSION['UserTypeID']) == 1) //check if user is a user and display buttons
{
?>
<li><a href="user.php">My Account</a></li>
<li><a href="logout.php">Logout</a></li>
<?php } elseif(isset($_SESSION['UserTypeID']) == 2) //check if user is an admin and display buttons
{
?>
<li><a href="admin.php">My Account</a></li>
<li><a href="logout.php">Logout</a></li>
<?php }else{ // if user is not logged in then display these buttons?>
<li><a href="signin.php">Sign In</a></li>
<li><a href="signup.php">Sign Up</a></li>
<?php } ?>
【问题讨论】:
-
isset($_SESSION['UserTypeID']) 是 0 或 1,绝不是 2。
-
session_start();在<?php之外? -
嗨 Gerard,在我的数据库中,管理员设置为 2,它可以正常登录。不要认为这是一个问题
-
嗨,kerbholz,是的,我意识到了这一点。但这并不能解决问题。缺少其他东西。谢谢
-
@DawidOskwarek 你需要检查的是 $_SESSION['UserTypeID'] == 2,没有 isset
标签: php button hide admin display