为什么会话不能被取消和销毁?

我的网站上有一个几乎可以运行的注册系统,唯一缺少的部分是注销功能。它启动会话但似乎没有破坏它,因此,前一个会话始终处于活动状态。我是正确地破坏了会话还是我做错了什么?


起初,我只是尝试设置用户数据,然后在销毁会话之前将它们一一取消设置,这不起作用。所以现在我在销毁它们之前用纯字符串设置用户数据,同样,似乎不起作用。


注销链接如下所示:


<a href="http://localhost/dir/dir1/dir2/index.php/Controller/logout">logout</a>

在我的控制器中,我有这个:


public function logout() {



    $this->load->helper('url');

    $this->load->library('session');


    $session_data = array(

      'data' =>  'data',

      'data' => 'data',

      'data' =>  'data',

      'data' =>  'data',

      'data' =>  'data',

      'data' => 'data',

      'data' => 'data',

      'data' => 'data',

      'data' => 'data',

      'data' =>  'data',

      'data' =>  'data',

      'data' =>  'data',

      'data' =>  'data',

      'data' =>  'data'

    );

    $this->session->set_userdata($session_data);


        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');

        $this->session->unset_userdata('data');


    $this->session->sess_destroy();

    redirect('http://localhost/dir/dir1/dir2/index.php/Controller/loginview', 'refresh');

}

我希望会话在重定向之前被销毁(确实如此),但是当我输入新的登录凭据时,它仍然显示上一个会话中的登录凭据,而应该显示新的登录凭据。


慕森王
浏览 193回答 2
2回答

墨色风雨

您可能需要实施,ob_start()并且ob_clean()正如Session所建议的那样,不会在 codeigniter 中销毁。因此,这可能是同一事物的副本。

潇湘沐

我只是忘记指定会话参数,反正问题解决了!
打开App,查看更多内容
随时随地看视频慕课网APP