0

私はphpが初めてです

これはログインページのスクリプトです

<?php include('dbconnect.php');

    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    $admins_sql = "SELECT * FROM  administrator WHERE   username = '" .$username. "' AND password = '".md5($password). "' AND status = 'Active'";
    $admin_exe = mysql_query($admins_sql, $con);

    //Setting session variable

    $admin_row=mysql_fetch_array($admin_exe);
    $_SESSION['username'] = $admin_row['username'];
    $_SESSION['type'] = $admin_row['type'];

    IF($_SESSION['type'] == 'Admin') {header("Location:admin");exit(); }
    IF($_SESSION['type'] == 'Main') {header("Location:main");  exit(); }
    IF($_SESSION['type'] == 'Teaching') {header("Location:Teaching"); exit(); }
    IF($_SESSION['type'] == 'Exam Cell') {header("Location:Exam Cell"); exit(); }
    IF($_SESSION['type'] == 'Non-Teaching') {header("Location:Non-Teaching"); exit(); }
    IF($_SESSION['type'] == 'Library') {header("Location:Library"); exit(); }
    IF($_SESSION['type'] == 'Main') {header("Location:office"); exit(); }
    IF($_SESSION['type'] == 'Placement') {header("Location:Placement"); exit(); }
    IF($_SESSION['type'] == 'Systems') {header("Location:CC"); exit(); }
    IF($_SESSION['type'] == 'student') {header("Location:student"); exit(); }

?>

上記のスクリプトのリダイレクトに見られるようなフォルダーがあります。

私の問題は、教育タイプのユーザーがログインすると、URL IP アドレス/メイン フォルダー名/Teaching/index.php を表示するようにリダイレクトされることです。URL の Teaching を admin に変更し、admin フォルダに入り、admin 機能にアクセスするだけです。

私が望むのは、あるタイプのユーザーが別のタイプのユーザーフォルダーに入らないようにすることです。

4

1 に答える 1

0

たとえば、メイン ページの上で、アクセスを検証し、各領域に対して同じことを行う必要があります。これを行う方法は他にもありますが、探しているものにはこの方法で問題ありません。

session_start();
if( !isset( $_SESSION['type'] ) AND $_SESSION['type'] != 'Main' ) {
    header("Location: AccessDenied");
}
于 2015-03-20T07:43:04.090 に答える