php
2012-05-01 96 views 0 likes 
0

我有一切工作在我的登錄,除了管理員用戶。php - session,檢查管理員

當我嘗試導航到我的admin.php時,即使我已經以管理員身份登錄,也會得到「必須登錄」。

當我點擊管理鏈接時,我首先去checkAdmin.php這是下面的代碼。

<?php 
if($_SESSION['userEmail'] != '[email protected]') { 
    echo "<center><font face='Verdana' size='2' color=red>Must be logged in</font> <br><a href=index.php>Login Here</a></center>"; 
    exit; 
} 
?> 

我在做什麼錯嗎? 謝謝。

我有session_start();在我的admin.php頁面的頂部。 我用print_r($ _ SESSION);並得到這條線,所以它有正確的價值。

Array ([userEmail] => [email protected]) 

另外,如果我添加session_start();到checkAdmin.php,然後屏幕只是在checkAdmin,當我點擊進入管理頁面。

的admin.php的有這個頂部

session_start(); 
require "checkAdmin.php"; 
include("db_info.php"); 
+0

如果你依靠的是'在session_start()'的'admin.php'你或許應該使用'包括(「checkAdmin.php」);'代替'require' –

回答

3

請務必檢查會話變量之前呼籲session_start()

+0

我個人使用'if(!isset($ _ SESSION)){session_start();因爲它有時可能會導致一些錯誤。 – Styxxy

+0

然後我會做什麼endo.anaconda說,並轉儲$ _SESSION變量,看看是否有任何東西。 – gcochard

+0

當我把session_start();我只是卡在checkAdmin.php頁面。 – Meowbits

2
  • 你可能沒有設置$_SESSION['userEmail']而登錄過程
  • session_start()必須調用。
  • 我檢查什麼真的是在你的會話與print_r($_SESSION);
+0

使用print_r($ _ SESSION);我收到了正確的電子郵件 – Meowbits

1

你嘗試添加session_start()?您必須在查找會話變量之前執行此操作。

嘗試使用它:

<?php 
session_start(); 
if($_SESSION['userEmail'] != '[email protected]') { 
    echo "<center><font face='Verdana' size='2' color=red>Must be logged in</font> <br><a href=index.php>Login Here</a></center>"; 
    exit; 
} 
?> 
+0

嘗試過,我只是卡在checkAdmin.php頁面。 – Meowbits

1

用var_dump(),而不是print_r的。請注意報告的字符串長度,因爲某些字符不可見,但顯然會導致字符串比較失敗。

你可能有一個流浪空白字符

+0

使用我得到一個返回 - 數組(1){[「userEmail」] =>字符串(17)「[email protected]」} – Meowbits

相關問題