Codeigniter session lost after refresh or redirect (XAMPP)

Today I was working for a client who had an existing codignitor codebase. He needed some enhancement. So I got his code and started setting up on my XAMPP server.

Everything was smooth, database import, config file changes and others. But a strange issue stuck me and cost me 4 hours.

Issue: Codeigniter session lost after refresh or redirect

Strange thing is same code is working on the server.

On page refresh, I echo $this->Session->all_userdata() and I receive:

Array
(
[__ci_last_regenerate] => 1576624805
)

Each refresh generates a new number.

The initial session data looks good, as below:

Array
(
[__ci_last_regenerate] => 1576165611
[DATA] => Array
(
[0] => Array
(
[customer] => 12
[orderqty] => 1
)

)

)

Config settings all looked good.

Digging the internet, I found that there is a REGEX command in the below file that was conflicting due to PHP version mismatch.

File: \system\libraries\session\Session.php

//Line 136 changed by me on 12.15.2019 -mb
//OR ! preg_match(‘#\A’.$this->_sid_regexp.’\z#’, $_COOKIE[$this->_config[‘cookie_name’]])
OR ! preg_match(‘/^[0-9a-f]/’, $_COOKIE[$this->_config[‘cookie_name’]])

That solved the issue. Hope this will help someone else.

 

Leave a Reply