2009-06-04 55 views
1
 $query = "SELECT * 
       FROM users 
       WHERE username = '".mysql_escape_string($username)."' 
       AND password = '".mysql_escape_string($password)."'"; 
     $result = mysql_fetch_array(mysql_query($query)); 

現在,這是我對一般遊客查詢,現在如果我需要一個管理員和版主如何從同一個用戶單獨一個特定ID處理。兩種不同的登錄頁面,根據ID使用PHP和MySQL

我的SQL查詢。

CREATE TABLE IF NOT EXISTS `users` (
    `yourID` int(10) unsigned NOT NULL auto_increment, 
    `username` varchar(26) collate latin1_general_ci NOT NULL, 
    `password` varchar(26) collate latin1_general_ci NOT NULL, 
    PRIMARY KEY (`yourID`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=87992 ; 

管理員和管理員登錄頁面將相同。

回答

6

我不知道我是否正確理解你的問題,但通常登錄系統不應該在用戶角色之間做任何區別。登錄後,您可以檢查登錄用戶的權限,並允許他訪問應用程序的受限區域。

+0

這絕對是接近用戶認證的方式。任何事情都會使這個過程變得更加複雜化。 +1 – Abinadi 2009-06-04 12:35:26

0

需要用戶類型的字段添加到表, 你知道什麼是該組的用戶

2

我可能會誤解你想要什麼,但你可以將另一列添加到您的用戶表來區分在不同類型的用戶之間。你可以爲它添加一個整數列:

ALTER TABLE users ADD userlevel tinyint NOT NULL default 0; 

然後,你可以這樣按照你想要讓用戶設置什麼做的,例如

0 = normal user 
1 = moderator 
2 = admin 
etc. 

當用戶登錄後,您可以在查詢中檢索該值並將其存儲在會話等中以授予對受限操作的訪問權限。

你也可以使用MySQL的enum類型來替代整數​​。

1

我猜你想區分'普通用戶'和'管理員'。爲什麼不只是添加另一列到您的用戶表,例如AdminStatus並將其設爲int,否則爲零,對於是。然後在您的登錄查詢中只需檢查AdminStatus。

2

我不確定我是否理解這個問題。但我最近實現了一個登錄系統,我需要一個用戶帳戶和一個管理員帳戶。我在我的用戶表中添加了一個「特權」列,然後我存儲了一個與該用戶特權級別相關的數字號碼。然後在受限制的頁面上,我檢查了用戶是否具有所需的訪問級別來查看頁面。

  • 添加特權(tinyInt)屬性用戶表。
  • 將活動(布爾)屬性添加到 用戶表。
  • 將cookie(varchar)屬性添加到 用戶表。

//當頁面被訪問

checkLogin($特權)冉{

//Use Cookie to determine which user is accessing page 
//Determine if user is active (toggled when logged in) 
//retrieve users privilege level 
//check against passed in value 
//return true or false 

}

//腓對網站。

如果(checkLogin(0)){

//0 – guest 
//1 – user 
//3 – admin 

}

+0

是的,這是我確切的要求,你能給我一個例子。 – Kevin 2009-06-04 12:42:54

相關問題