Session not working in codeigniter

2019-06-04 23:15发布

问题:

Session Not working In codeigniter

Display Below error in my screen

Our Config code

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

回答1:

The problem is with this setting

$config['sess_save_path'] = NULL;

If you want to use $config['sess_driver'] = 'files'; then you need

$config['sess_save_path'] = 'the/absolute/path_to_your/session_files';

For instance, if you want those files to be in a folder named "sessions" that is at the same level as CodeIgniter's index.php file use this.

$config['sess_save_path'] = FCPATH.'sessions/';

The constant FCPATH is absolute path to the folder where CI's index.php is located. Typically, this is also the root folder for public html files. FCPATH could look something like /var/www/yoursitename/ on linux or C:\Users\YourName\Documents\www\yoursitename\ on Windows.

It is considered good security policy to put the session folder outside the "public" html files. In other words, a directory above FCPATH. In this case the "sessions" folder is at the same level as your public html files. The config would then be this.

$config['sess_save_path'] = substr(FCPATH, 0, strpos(FCPATH, 'www/'))."sessions/");

Note that the 'www/' above needs to be the same as the name of your public (root) html folder.

Also, where ever the file is the permissions for writing to that folder need to be set correctly. Consult the documentation.