我有這樣的錯誤我的簡單登錄系統出錯。試圖從數據庫中讀取
「警告:mysql_result():\ XAMPP \ htdocs中\核心\功能\ users.php第14行:USER_ID在MySQL結果指數13用C未找到」我想我不知道如何從我的數據庫中讀取,它看起來像
這裏是我的用戶代碼
<?php
function user_exists($username){
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(`uID`) FROM `user` WHERE `uUserName` = '$username'"), 0) == 1) ? true : false;
}
function user_active($username){
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(`uID`) FROM `user` WHERE `uUserName` = '$username' AND `uActive` = 1"), 0) == 1) ? true : false;
}
function user_id_from_username($username){
$username = sanitize($username);
return mysql_result(mysql_query("SELECT `uID` FROM `user` WHERE `uUserName` = '$username'"), 0, 'user_id');
}
function login($username,$password){
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return (mysql_result(mysql_query("SELECT COUNT(`uID`) FROM `user` WHERE `uUserName` = '$username' AND `uPassword` = '$password'"), 0) == 1) ? $user_id : false;
}
?>
這是我登陸系統的代碼
if(empty($_POST) === false){
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($username) === true || empty($password) === true){
$errors[] = 'You need to enter a Username and Password';
} else if(user_exists($username) == false){
$errors[] = 'We cannot find that Username, have you registered?';
} else if(user_active($username) === false){
$errors[] = 'You have not activated your account.';
}
else {
$login = login($username,$password);
if($login === false){
$errors[] = 'The username or password is incorrect';
} else {
echo 'ok';
}
}
print_r($errors);
}
數據庫查詢通常不區分大小寫。您在數據庫級別將密碼作爲純文本比較是一個大紅旗,您的應用程序將很容易受到各種黑客攻擊。 - 編輯:我現在看到散列,對不起,忽略我 – Nikki9696
問題在於這一行:'mysql_result(mysql_query(「SELECT'uID' FROM'user' WHERE'uUserName' ='$ username'」),0, 'user_id');' 您正在使用'user_id'作爲偏移量,而不是mysql識別或查看的數字或字段。嘗試將其改爲「uID」。 –
我知道我正試圖輕鬆區分現在的事情。所以我明確表示。但它仍然無法找到密碼,有任何幫助嗎? –