2009-06-04 7 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だけで処理できるのですか?PHPとMySQLを使用した2つの異なるログインページ

My 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

0

私はあなたが欲しいものを誤解するかもしれないが、あなたは区別するために、ユーザーテーブルに別の列を追加することができますが、テーブルに をユーザータイプのフィールドを追加する必要があり、グループのユーザー

2

が何であるかを知っていますさまざまな種類のユーザー間で

ALTER TABLE users ADD userlevel tinyint NOT NULL default 0; 

次に、これをユーザーに許可するために設定することができます。たとえば、次のように設定できます。

ユーザーがログインすると、クエリでこの値を取得し、セッションなどで使用したり保存したりして、制限付きの操作にアクセス権を付与できます。

また、整数の代わりにこれにMySQLの列挙型を使用することもできます。

1

「通常のユーザー」と「管理者」を区別したいと思っています。ユーザーの表に別の列を追加するだけではいかがですか。 AdminStatusをintに、0を0に、yesを1に設定します。次に、あなたのログインクエリで、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 

}

// PHPの。

これは間違いなく、ユーザ認証にアプローチする方法である(checkLogin(0)){

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

}

+0

はい、これは私の厳しい要件です。私に例を挙げてください。 – Kevin

関連する問題