CodeIgniter Forums
Session is on bad state after sess_destroy() - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23)
+--- Thread: Session is on bad state after sess_destroy() (/showthread.php?tid=13658)



Session is on bad state after sess_destroy() - El Forum - 12-01-2008

[eluser]Unknown[/eluser]
After sess_destroy(), if you do a session->set_userdata the behavior is I think wrong:

Code:
function p1(){
        $this->output->enable_profiler(TRUE);
        $this->load->view('ok', array('msg'=>$this->session->userdata('msg')));
        $this->session->set_userdata('msg1',"oneone");
        $this->session->sess_destroy();
//        $this->session->sess_create();
        $this->session->set_userdata('msg',"one");
        $this->load->helper('url');
        $this->load->view('ok', array('msg'=> anchor('/test/p2','page 2')));
    }

    function p2(){
        $this->output->enable_profiler(TRUE);
        $this->load->view('ok', array('msg'=>$this->session->userdata('msg')));
        $this->load->view('ok', array('msg'=>$this->session->userdata('msg1')));
        $this->session->sess_destroy();
//        $this->session->sess_create();
        $this->session->set_userdata('msg',"two");
        $this->load->helper('url');
        $this->load->view('ok', array('msg'=>anchor('/test/p1','page 1')));
    }

Setting userdata after sess_destroy() provides inconsistent results
- empty session when $config['sess_use_database'] = True
- session containg both msg and msg1 when $config['sess_use_database'] = False


Uncommenting undocumented session->sess_create() after destroy produces consistent, (by me) expected results. Should fix bug #5904 and some other.