我正在創建一個新的登錄腳本/ members目錄。PHP錯誤 - 登錄腳本
我從頭開始創建它沒有任何框架(關於這個問題的建議也將不勝感激)。
的情況:
// Look up the username and password in the database
$query = "SELECT admin_id, username FROM admin WHERE adminname = '$admin_user' AND password = SHA1('$admin_pass')";
$data = mysqli_query($dbc, $query);
if (mysqli_num_rows($data) == 1) {
這段代碼一直給我一個錯誤(尤其是最後一行):
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home8/craighoo/public_html/employees/security/dir_admin.php on line 20
當呼應查詢我得到:
SELECT admin_id, adminname FROM admin WHERE adminname = 'admin' AND password = SHA1('password')
編輯: 感謝大家。問題出在我的數據庫列名和我引用的列名。
我假設你正在使用PHP會議確保運行(如果你不應該!)會話成功登錄後的session_regenerate_id()以防止已知漏洞。 – TravisO 2010-04-14 18:04:06
而不是在數據庫中運行SHA散列,我建議您使用PHP的SHA函數,特別是如果數據庫服務器位於另一個盒子上,因爲您將密碼從Web服務器以純文本的形式發送到數據庫,即使它在您的網絡,它仍然是一個漏洞。 – TravisO 2010-04-14 18:05:49
旁註:您可能需要查看一下準備好的語句(http://php.net/manual/en/pdo.prepared-statements.php)以避免SQL注入攻擊。 – pinkgothic 2010-04-14 18:08:39