我有3个不同的导航栏,根据用户的权限不同,必须加载不同的导航栏。我在一个不同的php文件中做了一个函数,所以我使用每个页面中的代码。我的问题是,登录后,没有导航栏正在加载。有什么建议可能是什么问题?登录后不显示导航栏
在function.php文件中的代码
function checkAuth()
{
session_start();
if(empty($_SESSION['role']))
{
require_once('menu.php');
}
else if ($_SESSION['role'] == "registered"){
include('regnav.php');
}
else if ($_SESSION['role'] =="admin"){
include('adminnav.php');
}
}
在每一页
<?php
require_once("function.php");
checkAuth();
?>
首先,使用'isset()'而不是'empty()'来检查$ _SESSION ['role']是否存在。其次,你还没有向我们展示menu.php,它有希望设置$ _SESSION ['角色']。第三,这段代码第一次运行时,它会运行menu.php,但不会再运行来设置任何导航栏。 –
@SgtAJ我只有menu.php中的导航栏的HTML和编码的开放,因为我在函数中调用会话,你认为这可能是问题吗? – Chanter
那么,它上面有你的require_once(“function.php”)和checkAuth()的第一页将启动你的会话。在那一点上,显然$ _SESSION ['role']将会被取消,因为我们刚刚开始会话,因此您的require_once(“menu.php”)将会运行,但checkAuth看起来并不像它会再次运行,直到我们击中另一个页面,因此在checkAuth()再次运行之前,不会显示导航栏。 –