我有3个不同的导航栏,必须根据用户的权限加载不同的1。我在一个不同的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();
?>
答案 0 :(得分:0)
尝试将会话结果传递给函数:
session_start();
$this_session = $_SESSION['role'];
require_once("function.php");
checkAuth($this_session);
function checkAuth($this_session)
{
if($this_session == ''){include('menu.php');}
elseif($this_session == 'registered'){include('regnav.php');}
elseif($this_session == 'admin'){include('adminnav.php');}
}
答案 1 :(得分:0)
我会亲自重新调整你的页面,就像这样:
在每页的顶部插入:
session_start();
include('function.php');
checkAuth();
将功能更改为:
function checkAuth()
{
if (!isset($_SESSION['role'])) { require_once('menu.php'); }
if ($_SESSION['role'] == 'registered') { include('regnav.php'); }
if ($_SESSION['role'] == 'admin') { include('adminnav.php'); }
}
这假设您没有在导航栏文件中使用功能,因为您没有调用任何函数来编写导航栏。当然,您可以将两个导航栏放入函数中,并将两个函数放入单个navbar.php
文件中,您可以将其包含在每个页面的顶部(或将函数放入function.php
),然后调用来自checkAuth()
函数的相应导航栏功能,如下所示:
if ($_SESSION['role'] == 'registered') { navbar_registered(); }
if ($_SESSION['role'] == 'admin') { navbar_admin(); }