Я пытаюсь создать логин пользователя.
Все работает отлично, кроме пароля md5.
По сути, у меня есть форма, которая выполняет проверку (для действующей электронной почты и обязательных полей), а затем я создал пользовательское правило проверки обратного вызова, чтобы сравнить введенные в форме данные пользователя с данными в базе данных. Если детали не найдены, правило возвращает FALSE, если они найдены, пользователь войдет в систему.
Вот функция для правила проверки в моем контроллере:
public function user_pass_check()
{
$db_users = $this->load->database('users', TRUE);
$post_email = $this->input->post('email', TRUE);
$post_password = $this->input->post('password', TRUE);
$query = $db_users->query("SELECT id, email, password FROM useraccounts WHERE `email`='$post_email' AND `password`=md5('$post_password')");
$result = $query->num_rows();
if ($result == 0)
{
$this->form_validation->set_message('user_pass_check', 'Login failed! Please check your login details.');
return FALSE;
}
else
{
// Session cookie creation goes here //
return TRUE;
}
}
Я просто получаю сообщение об ошибке, когда пытаюсь войти в систему. Он отлично работает, если пароль в базе данных не md5, и я удаляю md5 () вокруг $ post_password в запросе. Естественно, я хочу, чтобы пароли были md5, я не могу выставить пароли в своей базе данных.
Также вот правила проверки формы:
$this->form_validation->set_rules('email', 'email address', 'trim|required|valid_email|callback_user_pass_check');
$this->form_validation->set_rules('password', 'password', 'trim|required|md5|callback_user_pass_check');
Есть идеи?