2012-12-04 181 views
-3

我有這段代碼,它必須過濾admin的權限,我甚至做了一次複選。 但它似乎沒有工作。管理權限無法正常工作

CODE:

<?php 
    include("db.php"); 
    $result=mysql_query("SELECT * FROM members where admin='true' AND admincheck='1'"); 
    while($test = mysql_fetch_array($result)) { 
     echo"<li><a href='archief.php'><span>archief</span></a></li>"; 
    } 
    mysql_close($conn); 
?> 

數據庫:

CREATE TABLE `members` (
`member_id` int(11) unsigned NOT NULL, 
`admin` varchar(5) NOT NULL default 'false', 
`admincheck` int(1) NOT NULL default '0', 
`firstname` varchar(100) default NULL, 
`lastname` varchar(100) default NULL, 
`mail` varchar(150) NOT NULL, 
`login` varchar(100) NOT NULL default '', 
`passwd` varchar(32) NOT NULL default '', 
PRIMARY KEY (`member_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 


INSERT INTO `members` (`member_id`, `admin`, `admincheck`, `firstname`, `lastname`, `mail`, `login`, `passwd`) VALUES 
(607, 'true', 1, '---', '----', '---', '---', '---'), 
+1

定義「不起作用」。它做什麼或不做什麼? – deceze

+0

您的查詢按照我的預期工作,所以您必須做錯事。 mysql_query是否返回一些錯誤? –

+0

我不明白什麼是問題,你試圖達到什麼,請清楚,以便大家可以幫助你。 –

回答

1

你需要把會員ID當前登錄到查詢,所以假設你存儲登錄的用戶在會議:

$member_id = (int)$_SESSION['member_id']; 
$result=mysql_query("SELECT * FROM members where member_id = '$member_id' AND admin='true' AND admincheck='1' LIMIT 1"); 

if($result && mysql_num_rows($result) == 1) 
{ 
    // user is an admin, show secret links 
    echo "<li><a href='archief.php'><span>archief</span></a></li>"; 
} 
+0

它不能解決我的問題,它現在隱藏了一半的頁面。 我改變了會話ID,因爲它是** $ _ SESSION ['SESS_MEMBER_ID'] **,但沒有奏效。 它確實隱藏了鏈接,但也是頁面,而我是管理員。 –

+0

@DavePiersma我建議做上述查詢並存儲一個變量,以說出用戶是否爲管理員,然後在整個頁面中可以引用該變量來檢查用戶是否爲管理員並顯示特殊內容。 – MrCode

相關問題