我检查了所有此类问题,但没有一个对我有用。希望我能在这里得到一些帮助。我有一个名为 index 的控制器和一个名为 Index_model 的模型。我已经在索引控制器中编写了用户登录和注册函数,并在模型中完成了与数据相关的查询,除了 codeigniter 回调函数之外,一切都工作正常。
当我尝试通过使用回调来验证用户登录详细信息时,它每次返回 false 并且当我删除回调时它工作正常。我没有得到我做错的地方。请在下面找到我的控制器和型号的代码。提前致谢。
控制器:
class Index extends CI_Controller{
public function __construct(){
parent:: __construct();
$this->load->helper('url');
$this->load->model('index_model');
}
public function signin(){
$this->load->helper('form');
$data['title'] = "Sign In";
$data['headline'] = "Sign In";
$data['introduction'] = "Sign In to manage your business, clients and more!";
$data['include'] = "user/signin";
$this->load->view('template/template', $data);
}
public function login(){
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|callback_validate_login');
$this->form_validation->set_rules('password', 'Password', 'required|md5');
if($this->form_validation->run() == TRUE){
$data['msg'] = "User Login Successfully!!";
$this->load->view('user/home', $data);
}else{
$this->signin();
}
}
public function validate_login(){
$this->load->library('form_validation');
$result = $this->index_model->validate_user();
if($result == TRUE){
return TRUE;
}else{
$this->form_validation->set_message('validate_login', 'Incorrect username / password.');
return FALSE;
}
}
}
模型:
class Index_model extends CI_Model{
public function __construct(){
$this->load->database();
}
/******User Login*************/
public function validate_user(){
$username = $this->input->post('username');
$password = $this->input->post('password');
$this->db->where('username', $username);
$this->db->where('password', $password);
$query = $this->db->get('user');
if($query->num_rows() == 1){
return TRUE;
}else{
return FALSE;
}
}
}
请查看我的代码,这将是一个很大的帮助。