簡體   English   中英

登錄注冊失敗在codeigniter中登錄?

[英]Login registration fails to login in codeigniter?

我一直在嘗試將我的數據庫與 php codeigniter 框架連接起來,因為我正在為我的項目創建一個登錄表單,但是我在表單驗證回調中遇到了問題。 即使我輸入了正確的用戶名密碼。 它仍然給我不正確的用戶名/密碼。

這是我位於application/configdatabase.php的代碼:

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'users';
$db['default']['password'] = 'p455w0rd';
$db['default']['database'] = 'users';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

這是我的登錄控制器的代碼:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class C_login extends CI_controller{

    public function index()
    {
        $this -> login();
    }

    public function login(){

        $this->load->view('login');     
    }

    public function members(){
        $this->load->view('members');
    }


    public function login_validation(){

        $this->load->library('form_validation');
        //$this->form_validation->CI =& $this;

        $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean|callback_validate_credentials');
        $this->form_validation->set_rules('password', 'Password', 'required|md5|trim');

        if($this->form_validation->run($this) == false){
            $this->load->view('login');
        }
        else{
            redirect('c_login/members');
        }

    }

    public function validate_credentials(){

        $this->load->model('model_users');

        if($this->model_users->can_log_in()){
            return true;
        }
        else{
            $this->form_validation->set_message('validate_credentials', 'Incorrect username/password');
            return false;
        }
    }
}

我的模型用戶:

<?php

class Model_users extends CI_Model {

    public function can_log_in(){

        $this->db->where('username', $this->input->post('username'));
        $this->db->where('password', md5($this->input->post('password')));
        $query = $this->db->get('users');

        if($query->num_rows() == 1){
            return true;
        }
        else{
            return false;
        }
    }

}

如果你們能幫我解決這個問題,那將是一個非常大的幫助。 我正在使用 XAMPP 1.7.3a。

從此語句中刪除 md5

 $this->form_validation->set_rules('password', 'Password', 'required|md5|trim');

您在此處將密碼轉換為 md5,然后再次在模型中轉換密碼

  $this->db->where('password', md5($this->input->post('password')));

我認為這就是問題所在

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM