2012-01-29 6 views
0

私はログインページをよく作っています。実際にログインを完了しましたが、ユーザ権限に基づいてWebページにdiffren'tを表示させるにはどうすればいいですか?私のmysqlデータベースの特権?私のPHPコードでそれらを使用しますか?mysqlデータベースとPHPでのユーザ特権​​

+0

phpmyadminをインストールしましたか?また、mysqlワークベンチはクエリの作成やスキーマの設定に役立ちます。 – sissonb

+0

はいphpmyadminがあり、mysqlワークベンチを取得します – Huntaz556

+0

phpからmysqlデータベースへの 'mysql_connect'を成功させましたか? – sissonb

答えて

3

私は通常、adminというテーブルまたはこの場合はprivilege_levelと呼ばれるフィールドを作成し、その後、そのフィールドのどの値がどのレベルの権限に対応するかを定義します。

EDIT(例):

// start session on every page using $_SESSION array 
session_start(); 
session_name("Your Site Name"); 
header("Cache-control: private"); 

// in login file: 
$q = mysql_query("SELECT uid, privilege_level FROM users WHERE pw = 'escaped_and_preferrably_hashed_password' AND username = 'escaped_username' LIMIT 0,1"); 

// if row found: 
if($q && mysql_num_rows($q) > 0){ 

    // get associative array 
    $array = mysql_fetch_assoc($q); 

    // set session vars 
    $_SESSION['privilege_level'] = $array['privilege_level']; 

} 

次に、あなたがコンテンツを動的にロードするためには、スイッチまたは他の制御構造/デザインパターンを使用することができる特権レベルを確認したいページ、すなわち上:

switch($_SESSION['privilege_level']){ 
    default: 
     echo 'you have no privileges'; 
    break; 
    case "1": 
     echo 'you have some privileges'; 
    break; 
    case "2": 
     echo 'you have lots of privileges'; 
    break; 
} 
+0

一度私は自分のデータベースに接続し、そのテーブルとフィールドprivilege_levelを選択したら、私は何をしますか?このコード例を教えていただけますか?私はこれについて新しいことをやっています。ありがとう:) – Huntaz556

+0

私の編集は@sissonbが書いたものの例です – AndyPerlitch

+0

あなたの例は私より優れています+1 – sissonb

0

ユーザーがログオンすると、ユーザー名/パスワードが与えられます。データベースには、このユーザー名とパスワードのハッシュを格納する必要があります。例: md5($password)。最初に"SELECT privilege_level FROM table WHERE username = ".mysql_real_escape_string ($_POST["username"])." AND password=".md5($_POST["password"])

のようなクエリを実行し、そのprivilege_levelをセッションに保存します。 $_SESSION["privilege_level"] = $privilege_level

次のページを読み込むと、そのページはセッション変数の特権レベルを参照してページを構築する必要があります。

関連する問題