首頁  >  文章  >  後端開發  >  一個PHP關於登入的小問題

一個PHP關於登入的小問題

WBOY
WBOY原創
2016-10-10 11:56:001005瀏覽

<code>if($row){
   //判断密码是否正确
   if($row['user_password']===$password){
       echo 1;
   }else{
       echo "密码错误"; 
   }
}else{
   echo "没找到用户名";    
}
</code>

上面程式碼用來驗證使用者輸入的使用者名稱和密碼正確與否,為了方便看我把程式碼簡化去掉了取得資料庫資料的內容,為什麼當開啟頁面後什麼都沒輸就會輸出"沒找到使用者"呢?
一個PHP關於登入的小問題

回覆內容:

<code>if($row){
   //判断密码是否正确
   if($row['user_password']===$password){
       echo 1;
   }else{
       echo "密码错误"; 
   }
}else{
   echo "没找到用户名";    
}
</code>

上面程式碼用來驗證使用者輸入的使用者名稱和密碼正確與否,為了方便看我把程式碼簡化去掉了取得資料庫資料的內容,為什麼當開啟頁面後什麼都沒輸就會輸出"沒找到使用者"呢?
一個PHP關於登入的小問題

if($row)這一段程式碼需要寫在POST請求碼區塊裡。這樣get時,才不會執行這段程式碼。

例如點選登陸後,提交的使用者和密碼欄位分別為:username password

<code>$username = isset($_POST['username']) ? $_POST['username'] : false;
$password = isset($_POST['password']) ? $_POST['password'] : false;

if($username && $password){
    if($row){
       //判断密码是否正确
       if($row['user_password']===$password){
           echo 1;
       }else{
           echo "密码错误"; 
       }
    }else{
       echo "没找到用户名";    
    }
}
</code>

你把$row印出來看是什麼東西

那表示你打開網頁時就執行這段程式碼了,而且if判斷為假

既然印了沒找到用戶,說明 $row 為假,那你應該著重關注獲取 $row 的代碼,而不是你關注貼出來的代碼

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn