Php 无法销毁codeigniter中的会话

Php 无法销毁codeigniter中的会话,php,codeigniter,session,login,Php,Codeigniter,Session,Login,我想要实现的是一个简单的登录页面,如果用户成功登录,则重定向到主页,否则保留登录页面 我有一个名为login,的控制器和一个名为main的型号。 当用户单击登录按钮时,将调用login/login\u send <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Login extends CI_Controller{ function __construct() {

我想要实现的是一个简单的登录页面,如果用户成功登录,则重定向到主页,否则保留登录页面

我有一个名为
login,
的控制器和一个名为
main
的型号。 当用户单击登录按钮时,将调用login/login\u send

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller{

function __construct() {
    parent::__construct();
    $this->load->model('model_login');
}

function index()
{
    if ($this->model_login->is_logged_in())
    {
        redirect('main');
    }
    else
    {
        // load login page
        $data['main'] = 'view_login';
        $data['style'] = 'style_login';
        $this->load->view('template', $data);           
    }
}

function login_send()
{
    $this->form_validation->set_rules('username', 'Username', 'trim|required');
    $this->form_validation->set_rules('password', 'Password', 'trim|required'); 

    if ($this->form_validation->run() == FALSE) 
    {
        $this->index();
    } 
    else 
    {
        if ( $this->model_login->validate_user() )
        {
            $user_session_data = array(
                'username' => $this->input->post('username'),
                'is_logged_in' => 1
            );
            $this->session->set_userdata($user_session_data);       
            redirect('main');
        }
        else 
        {
            redirect('login');
        }
    }       
}// end function login_send

function logout() 
{
    if ($this->model_login->is_logged_in())
    {
        $this->session->sess_destroy();
        $this->session->set_userdata(array('username' => '', 'is_logged_in' => 0));
        log_message('debug', 'Some variable was correctly set');
    }
    redirect('login','refresh');
}

}// end class Login
?>

当第一次登录,然后注销时,没有问题。但是,如果我再次登录,我将无法注销。即使正确调用了登录/注销,我也刷新了页面,但是
会话['is_logged_in']==1
。我的代码有问题吗?

应用程序/config/config.php
中尝试更改

$config['sess_time_to_update']  = 300; //This is the default setting in ver 2.1.1


几年前,这给了我一些问题

$This->session->sess_destroy()
应该是最后一个调用的。另外,最好只从model_登录类调用
$this->session
函数。若要仅删除一个变量,请选择“取消设置用户数据”,您在Login::logout中调用“设置用户数据”,可能会发生奇怪的事情。谢谢您的回复。我已经将所有与会话相关的操作移动到model_login,并且我还向model_login添加了2个函数,它们是set_login_session(设置会话数据)和logout(取消设置会话数据)。但是,问题仍然存在:(输入错误:CI_MOdel{…应该是:CI_MOdel{…耶,我改为'MOdel',但它不起作用。我目前的解决方案是使用php$\u SESSION而不是使用CI SESSION,它起作用了。
$config['sess_time_to_update']  = 300; //This is the default setting in ver 2.1.1
$config['sess_time_to_update']  = 0;