CodeIgniter:在sess_destroy之后重新初始化会话

时间:2017-05-05 00:08:38

标签: php codeigniter session

我需要将用户注销,并在特定情况下向他们发送带有flashdata的消息。我尝试了以下代码,但似乎会话没有重新初始化:

if($user == NULL){

            $this->session->sess_destroy();
            $this->load->library('session');
            $this->session->set_flashdata("error", "message");
            redirect('/signin');
        }

如何重新初始化会话?

2 个答案:

答案 0 :(得分:0)

这非常hacky,但它确实有效:

我在一个控制器中销毁会话

if($user == NULL){

            $this->session->sess_destroy();
            redirect('/subscribe_error');
        }

然后我重定向到另一个功能(在另一个控制器中)

public function null_error(){
    $this->load->library('session');
    $this->session->set_flashdata("error", "message");
    redirect("/signin");
}

答案 1 :(得分:0)

你可能会考虑这个

public function logout()
{
  $items = ['name', 'is_logged_in']; //Or whatever designates the person as being logged in for you
    $this->session->unset_userdata($items);
    $this->session->sess_destroy();
    redirect('signin', 'refresh');
}