您好我一直在使用codeigniter v2.2,因为我已经开始使用codeigniter v3.0我在为用户帐户进行身份验证会话时遇到问题我想获得有关如何使其工作的帮助。
以下是控制器中的代码。
this.setTitle("");
user_model代码如下
public function validation(){
$this->load->helper('url');
$this->load->library('form_validation');
$this->load->model('user_model');
$query = $this->user_model->validate();
if($query) //if credential validated
{
$data1 = array(
'email' => $this->input->post('email'),
'is_logged_in' => true );
$this->session->set_userdata($data1);
redirect('users_area/user_is_in');
}
else{
$this->login();
}
}
最后有一个名为users_area的控制器就是那个 检查会话是否已设置,然后允许用户访问以前的codeigniter版本中一直有效的页面
users_area controller
function validate(){
$this->db->where('username',$this->input->post('username'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get('tbl_users');
if($query->num_rows == 1){
$this->session->set_userdata(array('authorized' => true));
return true;
}
}
答案 0 :(得分:0)
试试这个
在模型中
function validate(){
$this->db->where('username',$this->input->post('username'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get('tbl_users');
$result = $query->result_array();
$count = count($result);
if(empty(count)){
return false;
}
else{
return true;
}
}
在控制器中
public function validation(){
$this->load->helper('url');
$this->load->library('form_validation');
$this->load->model('user_model');
$result = $this->user_model->validate();
if($result == false)
{
# Invalid user
$this->login();
}
else{
# valid use
$data1 = array(
'email' => $this->input->post('email'),
'is_logged_in' => true
);
$this->session->set_userdata($data1);
redirect('users_area/user_is_in');
}
}