use*_*244 0 php if-statement compare session-variables
我正在尝试创建一个菜单,根据数据库中的用户访问级别,用户将显示两个不同菜单之一.
现在我的代码如下:
if($_SESSION['acl'] == "Administrator"){
echo $_SESSION['acl'];
echo "You are an administrator";
}
{
echo $_SESSION['acl'];
echo "You are a basic user";
}
Run Code Online (Sandbox Code Playgroud)
我的问题是if语句的测试总是失败并直接进入else部分.任何帮助,将不胜感激.
问题是你没有一else节,你忘了写这个词else!结果,底部代码块总是被执行,这就是为什么你总是看到它.
关于为什么if()从不调用用于检查用户是否为管理员的top 语句的原因:这可能是您在没有先调用session_start()代码顶部的情况下访问会话变量.如果不是这样,请确保您之前正确设置了该会话变量.
// start the session (required on all pages using session variables)
session_start();
// I assume that for debug, you print the session variable
echo $_SESSION['acl'];
if($_SESSION['acl'] == "Administrator"){
echo "You are an administrator";
}
else
{
echo "You are a basic user";
}
Run Code Online (Sandbox Code Playgroud)
只是一个建议:我假设代码echo $_SESSION['acl'];只是用于调试.我把它移到了下面,session_start()因为这样,它仍然被调用,但你不是两次写它.