2013-06-19 229 views
1

stackoverflow一直有幫助,但這次我沒有發現任何關於它的問題。 我正在做一個系統,如WordPress的: /管理/ /內容/ 的index.php管理面板系統

因此,隨着WP,裏面的「內容」將有「主題」,但我的問題是不是關於它。管理員,當然,用戶必須登錄。我如何將/ admin/*中的所有內容重定向到我的/admin/login.php? 我發現代碼中使用,如:

PHP代碼:

if (!empty($_SESSION['logged_in'])) 
echo something; 
else 
redirect something; 

但是,我不想讓它在每一頁,我要像在header.php中,在開始做:

if (!empty($_SESSION['logged_in'])) 
header ('Location: webpage'); 

HTMLCODE HERE。

但是,我不想加載HTML代碼,我想先重定向,然後再顯示HTML。可能嗎?

回答

0

嘗試類似:

if (!empty($_SESSION['logged_in'])) { 
header ('Location: /admin/login.php'); 
exit; 
} 
else 
{ 
// HTML 
} 

請務必與發送任何其他頭部信息而到瀏覽器之前頭()。

+0

這是我說過同樣的話,我不想在每個頁面輸入:「如果空白會話...其他...」。我認爲我會創建一個functions.php和一個函數is_logged,這將驗證,如果沒有,「header(Location:login.php); exit;」。那可行。 –

0

如果您想要檢測您的帳戶是否是管理員,那麼請考慮您已檢索帳戶的SQL數據並將其存儲到會話中。

讓我考慮$_SESSION['user_id']$_SESSION['user_prev'],user_ID的是SQL的帳戶的主鍵,user_prev是特權,讓我說

Member = 1 
Developer = 50 
Admin = 99 

那些是你們的特權的編號着,當然他們必須存儲在您的數據庫和檢索數據...

我們需要假設某個「訪問者」登錄...我們不知道它是一個會員/開發人員還是管理員。

if(isset($_SESSION['user_id'])) 
{ 
    if(isset($_SESSION['user_prev'])) { 
      /*We need to check if it is Admin or else it might be 
      *a Developer or just a Member 
      */ 
      if($_SESSION['user_prev'] == 99) { 
       include_once 'admin_content.php'; 
      }elseif($_SESSION['user_prev'] == 50) { 
       include_once 'developer_content.php'; 
      }else{ 
       include_once 'member_content.php'; 
      } 
    } 
}else { 
    header("Location: login.php"); 
} 

我用「include_once」,而不是重定向用戶到某個內容/ PHP ...這也將幫助你保證你的內容...

+0

好的,謝謝你。我會試着讓它成爲我的系統。 –

+0

如果它回答你,將其標記爲檢查..謝謝 – daison12006013