注销codeigniter

The*_*ing 6 php codeigniter

我在codeigniter中有一个注销控制器:

<?php

class Logout extends MY_Controller {

    function index()
    {

        $this->session->sess_destroy();
        redirect('index.php');
    }
}
Run Code Online (Sandbox Code Playgroud)

这会让我退出,但是当我在登录后调用另一个控制器时,比如"/ site/addnewpost",这只会让我再次登录,好像之前没有销毁过sassion.为什么会这样?

Dam*_*rsy 11

按照ALex的建议,但使用CI代码:).我的意思是,尝试单独取消设置每个会话数据.我读过一次关于版本2.0.3中的问题,我想,但我现在不记得,我没有时间搜索引用.但是,它在他们的论坛中,并且建议是相同的:逐个取消设置每个会话元素.

$this->session->unset_userdata('data_one');
$this->session->unset_userdata('data_two');
$this->session->unset_userdata('data_three');
$this->session->unset_userdata('data_one');
$this->session->sess_destroy();
redirect('home','refresh');  // <!-- note that
//you should specify the controller(/method) name here
Run Code Online (Sandbox Code Playgroud)

需要重定向,因为CI的会话只是cookie,而不是本机的php会话数组.

另一件事......确保故障不在您的登录方法中,无论您是否成功注销,都会记录您!