1
選擇一個值,我努力學習的,所以請原諒我什麼應該是一個明顯的答案:從表中的MySQL
試圖對數據庫進行比較的密碼是「舊密碼」字段中,但它不是比較爲真,所以當我打印的密碼,我從數據庫獲取我得到:
Array ([0] => stdClass Object ([password] => 7ed5a78c36a55c07c26469345a00609b))
,而不是隻爲密碼的值,這將是希望我與用戶比較輸入舊密碼。
我有這樣的:
function edit_member($user_info, $old_pass)
{
$id_user = $this->session->userdata('id_user');
$user_pass = $this->db->query("SELECT password FROM membros WHERE id_user='" . $id_user . "'")->result();
if (md5($old_pass) == $user_pass) {
$this->db->where('id_user', $id_user);
$this->db->update('membros', $user_info);
redirect('/cpanel');
} else {
//redirect('/edit_account/edit');
print_r("A password não coincide");
echo anchor('/cpanel', 'Voltar');
您存儲的密碼似乎是用md5加密的,所以它絕不會與您提供的密碼匹配。您需要使用md5加密提供的密碼,然後將此字符串與數據庫密碼字符串進行匹配。 –
嘗試MD5($ old_pass)== $ user_pass [0] - >密碼 –
@戈庫爾辛德 但是,這就是爲什麼我做的 「MD5($ old_pass)== $ user_pass」 $ old_pass是從用戶的輸入,其中$ user_pass是我從數據庫中檢索 - 不應該加密用戶輸入的值,然後將其與數據庫中的加密值進行比較? – Baya