【问题标题】:Two sites using different userdata but the same session domain in CodeigniterCodeigniter 中使用不同用户数据但会话域相同的两个站点
【发布时间】:2015-07-17 06:10:10
【问题描述】:

我正在使用 Codeigniter。我有 2 个网站,它们看起来像这样:

http://example.com/system/

http://example.com/system2/

这两个系统有不同的用户数据。在第一个站点中,我没有设置参数class,但在第二个站点中我设置了它。当用户第一次打开 http://example.com/system/ 然后打开 http://example.com/system2/ 它显示错误消息:undefined index class。会话域中的两个站点都是:example.com。 如何使有不同的会话?也许我必须在会话中设置不同的域?我之前没设置过,怎么设置?

【问题讨论】:

  • 检查这个link希望你正在寻找这个
  • 就我而言,应该是这样的?在第一个系统中: $config['cookie_prefix'] = "example.com/system_"; $config['cookie_domain'] = "example.com/system";第二个: $config['cookie_prefix'] = "example.com/system2_"; $config['cookie_domain'] = "example.com/system2";
  • 按上面的方式,我无法登录。现在我改变了前缀。对于第一个站点,它是: $config['cookie_prefix'] = "system_";对于第二个-$config['cookie_prefix'] = "system2_";当我登录第一个并输入第二个时,它会将我重定向到登录。但是当我第一次打开 second 然后 first 时,我仍然登录。如何重定向登录?
  • 你找到答案了吗?
  • 不,我还没有找到解决办法。

标签: codeigniter session dns


【解决方案1】:

在每个系统上使用数据库并更改数据库名称以及 config.php 中的 cookie 名称

$config['sess_table_name']      = 'system_x_session';
$config['sess_cookie_name']     = 'system_x_cookie';

其中 x 是您的系统编号,或者您可以将其命名为任何名称

别忘了在你的数据库中创建两张表

CREATE TABLE IF NOT EXISTS  `system_x_session` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

这将使您的会话彼此独立,您可以使用 phpmyadmin 等检查它们的内容

希望对你有帮助

【讨论】:

  • 我在数据库中没有这种表。我不在数据库中保存会话。我该怎么办?
  • 用答案中的第二个代码创建它们只需将 x 更改为 1 和 2,这里是 ci doc ellislab.com/codeigniter/user-guide/libraries/sessions.html ,滚动到将会话数据保存到数据库以了解如何使用表来存储session data ,但在您的情况下,您需要为每个系统创建 2 个表
  • 有没有不改数据库的方法?
  • 可能,但我习惯使用数据库,也许其他人知道如何在没有数据库的情况下做到这一点,但是,如果您的应用程序增长并说您托管,使用数据库确实是一件好事它在几台服务器(虚拟或专用)上,然后每台服务器都有自己的会话,这是一个问题,使用数据库可以让您集中数据,避免任何冲突,并扩展您的解决方案,甚至使用负载均衡器来加速数据流。
  • 谢谢,如果其他人知道如何在没有数据库的情况下做到这一点:)
猜你喜欢
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 2012-03-03
相关资源
最近更新 更多