【问题标题】:Codeigniter Password verify problems [closed]Codeigniter密码验证问题[关闭]
【发布时间】:2019-08-21 12:15:17
【问题描述】:

我有一个使用 PASSWORD_DEFAULT 加密密码的登录。有谁知道错误在哪里?

没有找到它,从我的角度来看,一切都应该工作。 我认为错误在于模型中的 password_verify 函数或 ID 的传递。

希望你能理解,尽管德国人的 cmets。

控制器代码:

//Login
    public function login(){
        //Seitenname definieren
        $data['title'] = 'Anmelden';

        //Formular überprüfung
        $this->form_validation->set_rules('user', 'Benutzername oder E-Mail', 'required');
        $this->form_validation->set_rules('passwort', 'Passwort', 'required');

        //Ausführen der Form überprüfung
        if($this->form_validation->run() === FALSE){
            //Überprüfung Negativ
            //Ansicht wird geladen
            $this->load->view('templates/header');
            $this->load->view('users/login', $data);
            $this->load->view('templates/footer');
        }else{
            //Überprüfung Positiv
            //Daten übergeben in Variabeln
            $user = $this->input->post('user');
            $passwort = $this->input->post('passwort');

            //Anmeldung überprüfen
            $userID = $this->user_model->login($user, $passwort);

            //Anmeldung wird durch geführt
            if($userID){
                //Anmeldung war erfolgreich
                //Nutzerdaten werden abgefragt und in Array übergeben
                $userinfo = array(
                    'userID' => $userID,
                    'vorname' => $this->user_model->get_where('users', $userID, 'vorname'),
                    'nachname' => $this->user_model->get_where('users', $userID, 'nachname'),
                    'username' => $this->user_model->get_where('users', $userID, 'username'),
                    'email' => $this->user_model->get_where('users', $userID, 'email'),
                    'bereich' => $this->user_model->get_where('users', $userID, 'bereichID'),
                    'position' => $this->user_model->get_where('users', $userID, 'positionID'),
                    'mitglied' => $this->user_model->get_where('users', $userID, 'mitglied_seit'),
                    'logged_in' => TRUE
                );

                //Array wird in Session gespeichert
                $this->session->set_userdata($userinfo);

                //Flashmeldung
                $this->session->set_flashdata('success', 'Anmeldung erfolgreich');

                //Umleitung
                redirect('');

            }else {
                //Anmeldung fehlgeschlagen
                //Flash Medlung
                $this->session->set_flashdata('danger', 'Anmeldung fehlgeschlagen, bitte erneut versuchen');

                //Umleitung
                redirect('login');
            }
        }
    }

型号代码:

    public function login($user, $pass){
    //Login wird geprüft
    //Hash und ID wird abgefragt
    $this->db->select('ID, passwort');
    $this->db->where('username', $user);
    $this->db->or_where('email', $user);
    $result = $this->db->get('users');


    if(!password_verify($pass, $result->row(0)->passowrt)){
        return FALSE;
    }else{
        //Rückgabe der ID
        if($result->num_rows() == 1){
            return $result->row(0)->ID;
        }else{
            return FALSE;
        }
    }
}

希望您能帮助我,如果您需要更多信息,请与我们联系。

【问题讨论】:

  • 您面临的错误/问题是什么?
  • 这里的错误if(!password_verify($pass, $result->row(0)->passowrt)){密码的拼写应该是passwort而不是passowrt,它应该是这样的$result[0]->passwort,因为$result包含结果数组
  • 谢谢你,我怎么会忽略...

标签: php mysql codeigniter codeigniter-3


【解决方案1】:

感谢拼写提示,现在是正确的代码

public function login($user, $pass){
//Login wird geprüft
//Hash und ID wird abgefragt
$this->db->select('ID, passwort');
$this->db->where('username', $user);
$this->db->or_where('email', $user);
$result = $this->db->get('users');


if(!password_verify($pass, $result->row(0)->passwort)){
    return FALSE;
}else{
    //Rückgabe der ID
    if($result->num_rows() == 1){
        return $result->row(0)->ID;
    }else{
        return FALSE;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多