0

異なるユーザーレベルでログインを作成しています。ユーザー名とパスワードがadminまたはstaffの場合に、テーブルユーザーからuser_levelフィールドをcomapareに取得する方法。

コードは次のとおりです。

<?php
include("../config/database.php");

if(isset($_POST["login"]))
{
  $username = $_POST['username'];
  $password = $_POST['password'];

  $username = stripslashes($username);
  $password = stripslashes($password);
  $username = mysql_real_escape_string($username);
  $password = mysql_real_escape_string($password);

  $query = "SELECT * FROM users 
                     WHERE username= '$username' OR email= '$username'  
                           AND password='$password'";
  $result = mysql_query($query);

  $count = mysql_num_rows($result);//counting table rows

  if($count==1)
  {//check if found username and password
    if(user_level == "admin")
    {
      header("Location: ../views/admin/dashboard.php");
    }
    elseif(user_level=="patient")
    {
      header("Location: ../views/default/home.php");
    }

  }
  else
  {
    echo "WRONG USERNAME OR PASSWORD!";
  }

}
?>
4

4 に答える 4

1

いくつかの変更を加えると、うまくいきます...

$count = mysql_fetch_assoc($result);

そしてまた

if($count==1){//check if found username and password
        if($count['user_level'] == "admin"){
            header("Location: ../views/admin/dashboard.php");
        }elseif($count['user_level']=="patient"){
            header("Location: ../views/default/home.php");
        }

    }
于 2013-02-08T06:33:40.820 に答える
0
if(user_level == "admin"){

する必要があります

$record=mysql_fetch_assoc($result);
if($record["user_level"] == "admin"){
于 2013-02-08T06:28:02.770 に答える
0

まず、括弧を使用して区切ります

$sql = "SELECT * FROM users
        WHERE (username= '$username' OR email= '$username')  
        AND password='$password'";";

また、mysql_*機能も制限されています。あなたはmysqli_*またはPDOそのことについて使用することができます。

そして、あなたの質問に答えるために、テーブル内のユーザーの役割を決定するフィールドがありますか?その場合は、単にフィールドを返し、ユーザーが適切なロールであるかどうかを確認してください。

例:

$data = mysql_fetch_assoc($result);

if ($data["user_level"] == "admin" ){
   ...
}
于 2013-02-08T06:28:04.260 に答える
0

user_levelデータベーステーブルにフィールドを追加する必要がありますusersadmin値またはpatient登録レベルで割り当てることができます。

その後、新しい変数で同じクエリを使用します$previlage。次に、それを使用してデータベースからコンテンツをフェッチします。以下のように、、、

           $previlage=mysql_fetch_array($result); //fetch contents from db

            if($previlage['user_level'] == "admin"){
                header("Location: ../views/admin/dashboard.php"); // if userlevel admin
            }elseif($previlage['user_level']=="patient"){
                header("Location: ../views/default/home.php"); // if user level is patient
            }
于 2013-02-08T06:32:44.987 に答える