2017-04-06 211 views
1

我的PHP登錄系統使用MYSQL登錄時使用空值。這是爲什麼發生?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

您應該使用mysqli,而不是mysql,因爲它現在已被棄用,它也非常不安全。您還應該使用mysqli_real_escape_string()函數來防止SQL注入。 I.E. $ username = mysqli_real_escape_string($ _ POST ['username']; –

+0

通過在每行之前添加四個空格來設置您的代碼的格式,然後它將顯示更清晰。 – 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'])) { ... } 

此外,您可以設置用戶名和密碼錶,不允許空值。