2017-04-06 11 views
1

MYSQLを使用した私のPHPログインシステムは、ヌル値でログインしています。なぜこうなった?PHPログインシステム - null値のログイン

session_start(); 

$username = $_POST['username']; 
$password = $_POST['password']; 


mysql_connect("localhost" , "root" , ""); 
mysql_select_db("deirastaff"); 

$result = mysql_query("SELECT * FROM users WHERE username ='$username' and password = '$password' ") 

    or die("Login failed" .mysql_error()); 

$row = mysql_fetch_array($result); 

if ($row['username']==$username && $row['password']==$password) { 

    $_SESSION['username']=$username; 

    echo '<script type="text/javascript"> window.open("staff.php","_self");</script>'; 

    //header("location:staff.php"); 

    //echo "Login Successfull "."Welcome ".$row['username'];  

}else { 

    echo '<script type="text/javascript"> 
    window.alert("Login failed!"); 
    window.open("index.php","_self"); 
    </script>'; 

    //header("location:index.php"); 
    //echo "Login Failed !"; 
    break; 
} 
+0

mysqlではなく、mysqlを使用してください。現在は非推奨であるため、あまりにも危険です。 SQLインジェクションを防ぐには、mysqli_real_escape_string()関数も使用する必要があります。 I. $ username = mysqli_real_escape_string($ _ POST ['username']; –

+0

すべての行の前に4つのスペースを追加してコードを書式設定すると、きれいに表示されます。 – glaux

答えて

1

MySQLiを使用する方がよい...

しかし、あなたは、このコードを試し、その後のMySQLを使用したい場合は...

if(isset($submit)) //name of your submit button 
{ 
    $result = mysql_query("SELECT * FROM users WHERE username ='$username' and password = '$password' ") or die("Login failed" .mysql_error()); 
    if(mysql_num_rows($rs)<1) 
    { 
     echo "Login Failed" ; 
    } 
    else 
    { 
     $_SESSION[username]=$username; 
    } 
} 
0

あなたは、クエリを行う前に、値を持っているだけでチェックできます。

if (!empty($row['username']) && !empty($row['password'])) { ... } 

null値を許可しないようにユーザー名とパスワードの表を設定することもできます。

関連する問題