Vegan Sv Vegan Sv - 4 months ago 37
PHP Question

Where to set session in Codeigniter?

I'm reading the Codeigniter 2.2 tutorial and I am not clear on how to use sessions for logging in.

Say I have a login.php, which checks user data with the database. Then if its ok then I should set the session in a controller?


And then in say admin.php page I should check if session exists by? :

$this->session->user_data('item'); ??

Or how do I check if the person is logged in?

Thank you


Based on the docs, to do anything custom within session you need to load the session library. If you plan to use session throughout your application, I would recommend autoloading the library. You do this from within config/autoload.php.

$autoload['libraries'] = array('session');

Then you won't have to use $this->load->library('session'); on every page.

After the library is loaded, set your custom information, maybe based off some information from your database. So in your case, this would be in login.php:

$this->session->set_userdata('userId', 'myId'); where userId would be the name of the session variable, and myId would be the value.

Then, on subsequent pages (admin.php), you could check that the value is there.

if($this->session->userdata('userId') == '') { //take them back to signin }