登录后没有显示导航栏

时间:2016-05-12 17:18:51

标签: php login navbar

我有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();
 ?>

2 个答案:

答案 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(); }