2016-05-10 6 views
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'); 
+2

Ваш сохраненный пароль, кажется, зашифрован с помощью md5, поэтому он никогда не будет соответствовать вашему предоставленному паролю. Вам необходимо зашифровать предоставленный пароль, а также md5, а затем сопоставить эту строку со строкой пароля базы данных. –

+0

попробовать md5 ($ old_pass) == $ user_pass [0] -> пароль –

+0

@ Gokul Shinde Но вот почему я "md5 ($ old_pass) == $ USER_PASS" $ old_pass является ввод от пользователя, где $ user_pass - это то, что я извлекаю из db - не следует ли это шифровать значение, которое вводит пользователь, а затем сравнить его с зашифрованным значением из db? – Baya

ответ

0

кажется, что ваш используете CodeIgniter для вашего приложения. Модель CodeIgniter возвращает значение или результат в формате объекта или массива. Поэтому для упрощения кода вы можете обновить код следующим кодом.

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 . "'")->row(); 
     if(isset($user_pass->password) && md5($old_pass) == $user_pass->password){ 
       $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'); 
     } 
} 
Смежные вопросы