Сравнение пароля md5 в запросе в Codeigniter для пользовательских входов - PullRequest
1 голос
/ 24 января 2012

Я пытаюсь создать логин пользователя.

Все работает отлично, кроме пароля 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');

Есть идеи?

1 Ответ

1 голос
/ 18 июля 2013
$post_password = md5($this->input->post('password', TRUE));

делает работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...