Проверка формы CI с обратным вызовом

Я создаю пароль для изменения с помощью проверки формы CI и устанавливаю правила с обратным вызовом модели.

public function change_password()
{
$this->form_validation->set_rules('current_password', 'Current Password', 'trim|required|callback_change');
$this->form_validation->set_rules('new_password', 'New Password', 'trim|required|min_length[5]|max_lenght[10]');
$this->form_validation->set_rules('conf_new_password', 'Confirm New Password', 'trim|required|matches[new_password]');

if ($this->form_validation->run() == FALSE)
{
$this->load->view('change_pass');
}
}

это функция обратного вызова для проверки пароля и затем изменения пароля:

function change()
{
$session_data = $this->session->userdata('logged_in');
$username = $session_data['username'];
$this->User_model->check_pass($username);
$rst = $this->User_model->check_pass($username);

foreach ($rst as $row)
{
$db_password = $row->password;
}

if (md5($this->input->post('current_password')) == $db_password)
{
//model for change password here

$this->form_validation->set_message('change', 'Change Password Success');
return FALSE;
}
else
{
$this->form_validation->set_message('change', 'Wrong current password');
return FALSE;
}
}

это форма смены пароля

<html>
<head>
</head>
<body>
<?php echo validation_errors(); ?>
<?php echo form_open('inspection/changepassword'); ?>
Current Password : <input type="password" name="old_password"><br>
New Password : <input type="password" name="new_password"><br>
New Password Conf : <input type="password" name="conf_new_password"><br>
<input type="submit" value="Change Password">
<?php echo form_close(); ?>
</body>
</html>

Проверка формы работает только в том случае, если текущий пароль имеет значение false или если все поля в форме пустые, но если текущий пароль имеет значение true или соответствует проверке формы базы данных, не запускается false, даже если новый пароль и подтверждение нового пароля не совпадают. Пожалуйста, помогите мне исправить это, извините, если мой английский или мой вопрос не ясны. Спасибо большое

0

Решение

Задача ещё не решена.

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector