我试图根据用户权限显示不同的导航栏。唯一的问题是当我登录系统时,无论用户的权限如何,它都会显示第一个。为了确保问题在循环中,我尝试切换其他ifs,同样的事情发生了。代码在外部php文件中,我在每个页面的顶部调用该函数。有什么建议吗?
function checkAuth() {
session_start();
if(!isset($_SESSION['role'])) {
require_once('menu.php');
} else if ($_SESSION['role'] = "registered") {
require_once('regnav.php');
} else if ($_SESSION['role'] = "admin") {
echo "FDGFGFD";
require_once('adminnav.php');
}
}
答案 0 :(得分:3)
您的问题在于此部分:$_SESSION['role'] = "registered"
。单=
表示您将值“已注册”分配给变量$_SESSION['role']
。
如果您要评估某些内容,则需要使用==
,即$_SESSION['role'] == "registered"
第二个elseif
答案 1 :(得分:3)
您需要使用双=
符号进行任何条件检查。对于if
或else if
中的任何条件检查,您必须在变量的中间使用==
。
如果仅使用=
,则表示在$_SESSION['role']
中分配值。您还可以使用===
来检查值以及变量的类型。
有效功能是:
function checkAuth()
{
session_start();
if(!isset($_SESSION['role']))
{
require_once('menu.php');
}
else if ($_SESSION['role'] == "registered"){
require_once('regnav.php');
}
else if ($_SESSION['role'] == "admin"){
echo "FDGFGFD";
require_once('adminnav.php');
}
}
?>