我有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()再次運行之前,不會顯示導航欄。 –