次の列を含む1つのテーブルが必要です:
id(一意、プライマリ)、ユーザー名、パスワード、役割(INT、ユーザーに応じて、プリンシパル、スタッフ、またはコレに1〜3が割り当てられます)
さらに
次のように設定する場合は、rolesという別のテーブルを作成できます。
id(一意、プライマリ)、タイトル(タイトルのオプションは、プリンシパル、スタッフ、またはコレスになります)
ユーザーがログインしたら、次のような操作を行います
if($role == 1){
// redirect to principal page
}
elseif($role == 2){
// redirect to staff page
}
elseif($role == 3){
// redirect to corres page
}
確かではありませんが、これでもうまくいくと思います。このクエリを試してください。
(SELECT '1' AS role FROM table1 WHERE username = $username AND password = $password)
UNION ALL
(SELECT '2' AS role FROM table2 WHERE username = $username AND password = $password)
UNION ALL
(SELECT '3' AS role FROM table3 WHERE username = $username AND password = $password)
ユーザーがこれら3つのテーブルのいずれかにのみいると仮定すると、ユーザー名とパスワードを一致させ、ユーザーがどのテーブルから来ているかを確認する必要があります。次に、
を使用して役割を引き出すことができます$role = $row['role'];
ユーザー名とパスワードの組み合わせが正しくない場合、$ roleは空になるか、[$ iscorrectuser =mysql_num_rows($ query)を使用して]一致する行数を取得でき、行数は0になります。ログインしようとしているユーザーを「ログインに失敗しました」というエラーメッセージでリダイレクトします。