2017-02-09 3 views
0

ねえ、これは私のPHPファイルlogin.phpですね。それで私の質問は何ですか? 1人の管理者と1人のユーザーの2人のユーザーメンバーが必要です。管理者とユーザーには異なるページが必要です。私のコードでは私はユーザーしか持っていませんが、通常のユーザー名とパスワードを入力するとユーザーページに移動しますが、adminsユーザー名とパスワードには同じことをしません。何も表示されません。管理者とユーザーのログインphp mysql形式

<?php 

    $host = "localhost"; 
    $user = "root"; 
    $pass = ""; 
    $db = "test"; 
    $tbl_name = "users"; 
    $tbl_name1 = "admins"; 

    mysql_connect($host, $user, $pass) or die (mysql_error()); 
    mysql_select_db($db) or die (mysql_error()); 

    if(isset($_POST['username'])) { 
     $username = $_POST['username']; 
     $password = $_POST['password']; 
     $sql = "SELECT * FROM users WHERE username='".$username."' AND password='".$password."' LIMIT 1 "; 
     $res = mysql_query($sql); 


     if(mysql_num_rows($res) == 1) { 
      header("location:update.php"); 
      echo "You have successfuly logged in."; 
      exit(); 
     } else { 
      // session_register("username"); 
      // session_register("password"); 
      echo "Invalid logind information. Please return to the previous page"; 
      header("location:login.php"); 

      exit(); 
     } 

    } 

    ?> 
+2

あなたが新しいの[ 'mysql_'](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) データベースの拡張機能を使用するたびコード ** [子猫は世界のどこかで絞め殺されている](http://bb.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)**廃止され、何年も前からPHP7でこれまでになくなってしまっています。 PHPを学んでいるだけなら、 'PDO'や' mysqli'データベースの拡張機能や準備した文を学ぶことができます。 [ここから開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+1

あなたのスクリプトは[SQL Injection Attack]の危険にさらされています(http://stackoverflow.com/questions/60174/how -in-prevent-sql-injection-in-php) [Little Bobby Tables](http://bobby-tables.com/)に何が起こったかを見てください。 [入力をエスケープしている場合は、安全でない!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) [準備されたパラメータ化されたステートメント](http://php.net /manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

+1

プレーンテキストのパスワードを保存しないでください! PHPは['password_hash()'](http://php.net/manual/en/function.password-hash.php) と['password_verify()'](http://php.net/manual/ en/function.password-verify.php)それらを使用してください。 ここにいくつかの[パスワードに関する良いアイデア]があります(https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) 5.5より前のPHPバージョンを使用している場合は、[互換パックがあります](https ://github.com/ircmaxell/password_compat) – RiggsFolly

答えて

0

まず、mysqlを取り除き、mysqliを使用します。 mysqliは廃止され、PHP 7では削除されました。

第2に、mysqliに切り替えたと仮定すると、ユーザデータベース内のグループを確認できる新しいカラムに保存することができます。

if($row["group"] == 'admin') { 
//Display admin webpage 
} else { 
//Display user webpage 
} 
関連する問題