我想在验证用户的所有凭据时从控制器设置codeigniter中的会话。我在我的登录控制器的方法中有这个代码。方法'login_check
'被form_validation的set rules方法调用为回调函数。我尝试一切可能的方式,但由于某种原因,我不能设置应该是根据CI手册codeiginiter设置会话错误
注意一个简单的任务会话:会话在autoload.php
$this->form_validation->set_rules('password', 'password', 'trim|required|callback_login_check');
public function login_check($password) {
$this->load->library('session');
//Field validation succeeded. Validate against database
$username = $this->input->post('username');
$this->load->model('industry_person');
//query the database
$query = $this->industry_person->check_login($username, $password);
if (!$query) {
$this->form_validation->set_message('login_check', 'Invalid username or password');
return false;
$this->index();
} else {
$data = array(
'username' => $username,
'is_logged_in' => true
);
if (!$this->session->set_userdata('logged_in', $data))
echo "error setting session";
}
}
我自动加载当我输入正确的证书并且它们在数据库中匹配时接收输出为'错误设置会话'。
你已经设置的加密密钥,对? – 2013-02-22 12:54:14
'if(!$ this-> session-> set_userdata('logged_in','$ data'))'$ data引用了它 - 不应该 - 它是一个包含数组的变量。另外,set_userdata只接受数组,而不是你正在传递的tring'logged_in'。 – 2013-02-22 12:55:38
是的,我已经设置了加密密钥 – Sahil 2013-02-22 12:57:57