2014-09-04 24 views
0

我有一個包含usertypes和頁面例如檢查許可DATABSE和重定向,如果沒有找到

頁面的用戶類型
的index.php 1
的index.php 2
test.php的1

,以便只有特定的用戶類型才能看到頁面。我想把它放在我的header.php文件中,以便瀏覽器檢查用戶是否有權查看頁面,如果他們沒有,則將它們帶回到登錄屏幕。

當用戶登錄時,usertype存儲在會話變量中。

我在header.php中添加以下內容,以便它可以通過包含進入每個頁面,但始終可以讓他們查看頁面,無論其權限如何。未登錄和超時部分正在工作,但不是權限部分。

 <?php 
session_start(); 
include'connect_db.php'; 
# Redirect if not logged in. 
if (!isset($_SESSION[ 'userid' ])) { require ('login_tools.php') ; load() ; } 

if($_SESSION['last_activity'] < time()-$_SESSION['expire_time']) { 
    //redirect to login.php 
    header('Location:login.php'); 
} else{ //if we haven't expired: 
    $_SESSION['last_activity'] = time(); 

} 

# check for permissions 
$q = "SELECT usertypeid, page FROM permissions WHERE usertypeid='$_SESSION[ 'usertypeid' ]' AND page=basename($_SERVER['PHP_SELF'])" ; 
    $r = mysqli_query ($dbc, $q) ; 
if(@mysqli_num_rows($r) == 1) {//permission in table 
    $_SESSION['last_page'] = $_SESSION['current_page']; 
} else{ //permission not in table 
    header('Location:login.php'); 
} 
+0

使用phpMyAdmin或MySQL工作臺運行在SQL查詢並顯示結果 – gvgvgvijayan 2014-09-04 08:44:23

回答

0

您的mysql查詢有語法錯誤。

$q = "SELECT usertypeid, page FROM permissions WHERE usertypeid='$_SESSION[ 'usertypeid' ]' AND page=basename($_SERVER['PHP_SELF'])" ; 

應該

$q = "SELECT usertypeid, page FROM permissions WHERE usertypeid='".$_SESSION[ 'usertypeid' ]."' AND page='".basename($_SERVER['PHP_SELF'])."';"; 
相關問題