【问题标题】:Why is the session array showing instead of the ID?为什么显示的是会话数组而不是 ID?
【发布时间】:2019-06-27 14:14:21
【问题描述】:

我有几个使用 codeigniter 版本 3.1.10 的网站,其中两个在会话方面存在问题。它们都使用数据库作为存储方法,它们之间唯一改变的是用于数据库访问的用户名和密码。他们使用 PHP 7.2 版的同一主机,并且都使用 SSL。非工作网站在浏览器调试工具的“值”字段中显示会话数组数据,而工作网站仅显示会话 ID。

我尝试通过 htaccess 文件强制使用 HttpOnly,因为这是我注意到网站之间不同的事情之一。我使用 3.1.10 手册中的说明重建了我的 ci_sessions 表。我只能使用 PHP 转储会话 ID。

我的配置文件:

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

   $config['cookie_prefix']    = '';
   $config['cookie_domain']    = '.domain.com';
   $config['cookie_path']        = '/';
   $config['cookie_secure']    = TRUE;
   $config['cookie_httponly']     = FALSE;

非工作站点在值字段中显示的内容:

a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%22d10535309de4fe94cf3ab8f18696b541%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A13%3A%22000.000.000.0004%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A68%3A%22Mozilla%2F5.0+%28X11%3B+Linux+x86_64%3B+rv%3A60.0%29+Gecko%2F20100101+Firefox%2F60.0%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1561497096%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3B%7D51b0591e7a6e64db0d7b1690138b3d3d85aff629

出于显而易见的原因,我更换了 IP 地址和域。我不确定为什么它会显示整个数组而不仅仅是 ID,或者是什么可能会影响会话的行为。我启用了日志记录,但这并没有太大帮助。只是试图让另一双眼睛看到这一点。忘了提到我正在自动加载数据库和会话库。

编辑:所以我对它进行了更深入的研究,我试图登录我在其中一个网站上建立的用户区域,它给了我一些 SQL 错误。首先它不包括表名,尽管它存在于 sess_save_path 中。我添加了具有适当名称的 sess_table_name 并解决了最初的问题,但随后它表示在带有 session_id 字段的 where 子句之后存在问题。我没有使用字段名称 session_id、last_activity 和 user_data。我下载了 3.1.10 的新副本,这确实是它在 system/libraries/Session.php 下寻找的内容,但我无法在手册中的任何地方找到它。即使在调整 Session.php 中的名称以查看发生了什么之后,也没有任何内容插入到 ci_sessions 表中。

编辑 2:我还尝试更改表中的字段名称以匹配 Session.php 正在查找的内容,尽管不再出现 SQL 错误,但表中仍然没有插入任何内容。

【问题讨论】:

    标签: php session codeigniter-3


    【解决方案1】:

    问题已通过回滚到 CI 3 的先前版本(我相信是 3.1.6)得到纠正。我不确定版本之间处理会话的方式发生了什么变化,但我一定会仔细阅读文档以弄清楚这一点。

    【讨论】:

      猜你喜欢
      • 2011-11-21
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      相关资源
      最近更新 更多