CodeIgniter 3 and sessions


CodeIgniter 3 and sessions

我最近更新了CodeIgniter 3,遵循本指南:CI3:从2.2.1升级3.0。

我在application/config/config.php文件中设置了此配置:

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session_my_site';
$config['sess_expiration'] = 604800; // 1 week
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;

这里有什么问题吗?我的会话在几个小时后被破坏。。。

在保存路径中,您需要设置一个位置文件夹。首选'files'作为会话驱动程序。如下所示,我已经在设置文件夹的BASE PATH中设置了一个缓存来存储会话。确保您有自动加载的会话和$config['encryption_key'] = ''添加密钥。

您可以设置数据库会话,但这同样有效。确保文件夹权限0700

http://www.codeigniter.com/userguide3/search.html?q=session&check_keywords=是&area=默认

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 1440;
$config['sess_save_path'] = BASEPATH . 'yourfoldername/cache/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;

一旦完成了,你应该能够做一些类似的事情。

$this->load->library('session');
$data_session_set = array('logged' => 1, 'username' => $this->input->post('username'), 'user_id' => $this->user_auth->get_id()); 
$this->session->set_userdata($data_session_set);

在application/config/config.php中设置此值:

$config['sess_save_path'] = sys_get_temp_dir();

我使用这段代码,它可以工作。

    if (version_compare(PHP_VERSION, '5.4.0', '<')) {
        if(session_id() == '') session_start();
    } else  {
       if (session_status() == PHP_SESSION_NONE) session_start();
    }

我使用了两个不同的值,它们以某种方式起作用,这取决于Centos:的版本

对于Centos6.X,我使用了:

在application/config/config.php中设置此值:

$config['sess_save_path']=NULL;

对于Centos 7.X,我使用了:

$config['sess_save_path']=sys_get_temp_dir();

如果您不编辑此值就将应用程序从一个服务器版本移动到另一个服务器,则它将不起作用。