因此,我致力于大量的应用。而且我们一直在收到报告,称我们的登录无法正常工作。我已经环顾了一段时间-每个与我相似的问题都没有得到解答。
这是我的会话配置。
$some_other_config["sess_cookie_name"]= "the_one_i_want_session";
$some_other_config["sess_expiration"]= 2678400;
$some_other_config["sess_encrypt_cookie"]= false;
$some_other_config["sess_use_database"]= true;
$some_other_config["sess_table_name"]= "db_session";
$some_other_config["sess_match_ip"]= false;
$some_other_config["sess_match_useragent"]= false;
$some_other_config["sess_time_to_update"]= 7200;
另外,我们还有一个会话
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'really_unimportant_session';
$config['sess_expiration'] = 2678400;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'a_non_exisiting_legacy_table';
$config['sess_save_path'] = '/path/to/the/sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['sess_match_ip'] = FALSE;
现在这是一个有趣的部分,“ the_one_i_want_session”是您是否正在登录的用户的唯一记录,对吗?
好吧,如果我连接到vpn(我认为可能是IP更改)并连接到任何国家/地区,我将无法登录。我们可以通过两种方式登录:使用ajax post-请求或常规表格发布。
它们基本上是相同的,当您登录到ajax时,登录名给出正确的登录成功状态,我们编写该会话,并将其存储在数据库中,并为用户提供成功的消息和选择到下一步去。当我们再次发出请求时,会话不会更新。
对于常规的表单发布,确实发生了相同的事情,但是我们使用codeigniter框架进行了重定向。会话再次到达数据库,但重定向后会话未连接到浏览器。
踢球者:如果我禁用了vpn,一切都会正常运行,就像一个超级按钮。我为此测试使用了专用Internet访问。
我真的不知道下一步要去哪里。我唯一看到的是在CI3中,该会话应该与$ _SESSION超全局变量一起工作,但是我的$ _SESSION始终为NULL。定义两个会话是否会出现问题?
编辑: 我忘记提及的一件事是。这仅在生产中发生。我们基本上有一个站点的镜像,其配置几乎相同(会话配置是相同的),并且登录在镜像的站点上有效。
Edit2: 似乎即使setcookie-function也会执行应做的事情,并返回true。我很困惑。