【问题标题】:Is the CodeIgniter's session class specific to a user's IP address?CodeIgniter 的会话类是否特定于用户的 IP 地址?
【发布时间】:2012-08-13 19:51:24
【问题描述】:

基本上,我的客户在我托管多个 CodeIgniter 项目的服务器上发现了一个错误。对于所有项目,我对程序的某些部分使用相同的 CodeIgniter 会话变量,例如登录/成员资格。我的客户完全位于不同的位置、不同的 IP 地址,他们遇到了问题,这让我相信这是因为 CodeIgniter 的会话变量名称在项目之间发生冲突。

那么,如果用户在不同的位置,不同的 IP 地址,CodeIgniter 的会话类不应该处理这些吗?还是我有设置/配置来做到这一点?

【问题讨论】:

  • “我的客户,他们完全在不同的位置,不同的 ips,他们遇到的问题让我相信这是因为 codeigniter 的会话变量名称在项目之间发生冲突。” i> 什么问题?我不相信你对原因的解释是正确的。
  • 您使用的是基于文件的会话吗?如果是这样,您是否为每个应用程序使用不同的文件目录?
  • 默认情况下,codeigniter 会忽略 IP 地址,但我看不出 IP 与您解释的问题有何关系。您唯一需要启用 codeigniter 对 IP 的理解是出于安全原因(因此用户不能切换计算机但使用相同的会话标识符)。如果在两个不同的位置有两个不同的用户,无论他们的凭据如何,他们都将使用两个不同的会话标识符。
  • 您遇到的具体问题是什么?请尽可能详细。
  • 我之前的评论怎么没有发布...

标签: php codeigniter session cookies ip


【解决方案1】:

CodeIgniter 制作专用会话 ID,其中用户的 IP 地址作为组件之一。至少可以说,重复会话 ID 的可能性非常小。

更多信息:http://codeigniter.com/user_guide/libraries/sessions.html

您可以尝试将用户数据添加到会话 ID 以进一步减少重复 ID 的可能性,但我怀疑问题出在 CodeIgniter 类中。

【讨论】:

    【解决方案2】:

    如果要匹配用户的IP地址,可以在./application/config/config.php中指定:

    $config['sess_match_ip'] = TRUE;
    

    【讨论】:

    • 我不认为这是他要问的。这是一个与安全相关的标志。
    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    相关资源
    最近更新 更多