您好,我一直在使用codeigniter v2.2,现在我已经开始使用codeigniter v3.0,我在进行用户帐户身份验证会话时遇到问题,我想获得有关如何使其工作的帮助。
以下是控制器中的代码。
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();
}
}
user_model代码如下
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;
}
}
最后还有一个名为users_area的控制器,它是检查会话是否已设置,然后允许用户访问在以前的Codeigniter版本中一直工作的页面
users_area控制器
function user_is_in(){
$is_logged_in = $this->session->userdata('is_logged_in');
if($is_logged_in != ""){
$this->members();
}else {
redirect('verify/signin');
die();
//session has to be altered bro
}
}
function members()
{
redirect('verify/users_mahali');
}
试试这个
在模型中
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');
}
}