Как использовать сессию в модели codeigniter

Я создал код для смены пароля, в почтальоне я должен дать старый и новый пароли с userid, когда я создаю пароль изменения, но не могу изменить пароль, он остается тем же самым в базе данных, и я думаю, что проблема с сеансом. Может кто-то увидеть ошибку в моем коде?

контроллер

  public function changepasswordcheckagain() {

$arr = array();
$arr['old_password'] = $this->input->post('old_password');
$arr['new_password'] = $this->input->post('new_password');
$this->load->model('User_model');
$result = $this->User_model->checkPasswordfor($arr);
echo json_encode($result);
if ($result) {

echo json_encode('success');exit;
} else {
echo json_encode($result);
echo json_encode('fail');exit;

}
}

модель

  public function checkPasswordfor($arr)
{
$user_id = $this->session->userdata('user_id');
$this->db->select('*');
$this->db->from('userdetails');
$this->db->where('user_id',$user_id);
//$this->db->where('user_password',$arr['old_password']);
$query=$this->db->get();
$result=$query->result();
if($result){
$layout['user_password'] = $arr['old_password'];
$layout_data['user_password'] = $arr['new_password'];

$this->db->where('user_id',$user_id);
$this->db->update('userdetails',$layout_data, $layout);
return true;
}else{
return false;
}
}

0

Решение

попробуйте этот код:
контроллер

  public function changepasswordcheckagain() {

$user_id = $this->session->userdata('user_id');

$arr = array();
$old_password = $this->input->post('old_password');
$new_password = $this->input->post('new_password');

$this->load->model('User_model');
$where = ['user_id' => $user_id];

//$data['password'] ---> column name
//$data['password' => $new_password] ---> new value of column
$data = [
'password' => $new_password
];

$result = $this->User_model->checkPasswordfor($where, $data);

echo json_encode($result);
if ($result == TRUE) {

echo json_encode('success');exit;
} else {
echo json_encode($result);
echo json_encode('fail');exit;

}
}

модель

   public function checkPasswordfor($arr)
{
$this->db->where($where);
if($this->db->update('table name',$data))
{
return TRUE;
}
else
return FALSE;
}
0

Другие решения

Других решений пока нет …