我正在努力处理一个如此奇怪的会话问题,我甚至不知道如何开始调试它。
我有一个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。
谢谢!
答案 0 :(得分:0)
当我将php版本更改为7.0时,我遇到了这个问题
下载最新版本的CI3
用新的文件夹替换System/
文件夹!
答案 1 :(得分:0)
您需要将框架更新到最新版本才能使用PHP 7
答案 2 :(得分:0)
更新您的框架!解决这个问题