我在我的项目中使用了代码点火器,我有一个登录模块,并对每个模块进行身份验证。当会话不存在时,重定向到登录页。因此,这是可行的,但有时它可能会发生,当我登录,然后刷新页面,我被重定向到登录页面(意味着会话已经消失)。
请不要试图告诉我使用另一个库,如php本机等。我只想知道是什么问题导致了这一点。
function _admin_login()
{
$this->form_validation->set_rules($this->login_rules);
$data['title'] = "Login";
$data['form_url'] = $this->uri->uri_string();
$data['login_btn'] = form_submit('login','Sign In','class="btn btn-large btn-block btn-primary"');
if($this->form_validation->run($this) == FALSE){
$data['user'] = form_input('username','','class="input-block-level input-large" placeholder="Username"');
$data['passw'] = form_password('password','','class="input-block-level input-large" placeholder="Password"');
$this->template->set('title','Login');
$this->template->load('template_login','login_view',$data);
}else{
$username = $this->input->post('username',true);
$row = $this->authentication_model->get_user_info($username);
$this->session->set_userdata('user',$row['user_id']);
$this->session->set_userdata('username',$row['username']);
$this->session->set_userdata('login_state',true);
$this->authentication_model->update_last_login();
redirect('product');
}
}这是我的登录脚本,如果验证通过,则会话被设置.在每个控制器中,我都检查了会话脚本。例子如下:
$this->authentication_plugin->check_logged_in();
function check_logged_in()
{
if(logged_in() === FALSE){
set_alert('Login in to view this page!!','error');
set_bookmark('login_url');
redirect("login");
}
}
function logged_in()
{
$CI =& get_instance();
$user = $CI->session->userdata('user');
if(!$CI->load->library('session')){
echo "no session is loaded";
die;
}
if(!empty($user)){
return true;
}else{
return false;
}
}有什么想法吗?谢谢!
发布于 2013-08-18 21:02:51
https://stackoverflow.com/questions/18299102
复制相似问题