2013-08-02 103 views
0

由於某些原因,我的登錄頁面中的輸入似乎沒有正確獲取進程。正確的用戶輸入被返回爲無效(錯誤的密碼),我看不出任何特別明顯的東西。但我只能假設用戶名或密碼由於某種原因未能通過。有人會有更多的經驗能夠看一看,並建議我怎麼做纔對。多謝你們。 P.S我的表格沒問題,所以不包括在內。登錄頁面上的數據丟失?

function logcon($user, $password) 
{ 

    $user = mysqli_real_escape_string($this->conn, $user); 
    $esc_password = mysqli_real_escape_string($this->conn,$password); 
$sql = "SELECT * from USERS WHERE username ='{$user}' AND password='{$password}'"; 
$result = mysqli_query($this->conn, $sql); 


       $row = mysqli_fetch_array($result); 
      return $row; 
      } 

登錄頁面。

if(isset($_POST['submit'])){ 

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


//To ensure that none of the fields are blank when submitting the form if 
if(isset($_POST['user']) && isset($_POST['password'])) 
    {  


$user = stripslashes($user); 
$password = stripslashes($password); 
$db1=new dbmember(); 
$db1->openDB();   
$row=$db1->logcon($user, $password); 


if($row[0]==1) 
{ 
    session_start(); 
    $_SESSION['user'] = $user; 
    $_SESSION['password'] = $password; 
    $_SESSION['loggedin'] = "true"; 
    header("location:index.php"); 
} 
     else 
     { 
      print ('<div id="error">Acess denied, wrong username or password?</div>'); 
     } 
     } 
     else 
      { 
      print ('<div id="error">Enter something!</div>'); 
     } 

} 
+1

爲什麼你不使用你的[**其他賬戶**(http://stackoverflow.com/users/2633799/downvotemeeee)?我有點喜歡這個名字 –

+1

因爲這裏的仇敵在爲LuLz低調。使用你的常識。 :) – user2646567

+0

手動轉義?與mysqli?你真的應該使用佔位符。 –

回答

0

看起來您在查詢中使用了錯誤的變量名稱。我還建議你考慮做一些散列和醃製你的密碼,而不是將它們保存爲純文本。

$sql = "SELECT * from USERS WHERE username ='{$user}' AND password='{$password}'"; 

應該

$sql = "SELECT * from USERS WHERE username ='{$user}' AND password='{$esc_password}'"; 

而且你的條件檢查似乎關閉,你正在檢查,看看是否在結果第一場= 1,而不是看是否有回報。

if($row[0]==1) 

或許應該

if($row)