CodeIgniter会话保持休息

时间:2018-03-26 15:49:46

标签: codeigniter session codeigniter-3

我正在努力处理一个如此奇怪的会话问题,我甚至不知道如何开始调试它。

我有一个CI 3.0.0项目已经启动并运行(并且不断开发)已有好几年了。

上周我换了一个新的托管服务,从那时起,我一直遇到会话问题,会话数据不断重置。

切换到新主机是由托管公司完成的 - 他们说他们按原样复制了整个cPanel帐户,包括文件&数据库。我在新服务器上做的一个更改是将之前未设置的cookie_domain定义为“.mydomain.com”。

当我开始遇到会话问题时,​​我将其更改回$config['cookie_domain'] = '';,但这没有帮助。

我在config.php中的会话/ cookie设置如下:

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 14400;
$config['sess_save_path'] = 'ci_sessions3';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

$config['cookie_prefix']    = '';
$config['cookie_domain']    = '';
$config['cookie_path']        = '/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']     = FALSE; 

我主要使用会话来保存用户登录详细信息,这是我在基本页面模板中使用的内容,用于检查用户是否已登录并具有相应的权限。如果是,我加载请求的页面视图。如果没有,我加载登录表单。 现在发生的事情是,在用户登录并开始使用系统之后,在很短的时间之后,它们将被抛回登录表单,就好像用户数据已经以某种方式重置一样。

if (!$this->session->userdata('admin_logged_in') || empty($this->session->userdata('digital_view_perms')))
    {
    $main_content = 'admin_digital/login_form';
    }
  $this->load->view($main_content, @$data_rows, @$prev_code, @$action);

关于我应该从哪里开始挖掘问题的任何指示都将受到高度赞赏!

我唯一知道的是托管服务。新服务器上的php版本是7.0.28,而旧服务器上的php版本是5.6.33。

谢谢!

3 个答案:

答案 0 :(得分:0)

当我将php版本更改为7.0时,我遇到了这个问题

  • 下载最新版本的CI3

  • 用新的文件夹替换System/文件夹!

答案 1 :(得分:0)

您需要将框架更新到最新版本才能使用PHP 7

答案 2 :(得分:0)

更新您的框架!解决这个问题