【问题标题】:Session got reset in chrome会话在 chrome 中重置
【发布时间】:2012-10-15 16:00:08
【问题描述】:

我在一台服务器上有两个域abc.comxyz.com,它们都有确切的代码。问题是在 xyz.com 中,codeigniter 会话变量在 chrome 浏览器中的页面刷新时被重置。但是没有这样的问题在 abc.com。它在两个域的 Mozilla 中都可以正常工作。问题的根源是什么?它与域有关,htaccess 吗?请指教。

【问题讨论】:

    标签: php codeigniter session google-chrome


    【解决方案1】:

    我以前遇到过这个(或非常相似的)问题,我通过启用会话来使用数据库来解决它。

    即在 config.php 中,将 sess_use_database 设为 true,即

    $config['sess_cookie_name']     = 'ci_session';
    $config['sess_expiration']      = 7200;
    $config['sess_expire_on_close'] = FALSE;
    $config['sess_encrypt_cookie']  = FALSE;
    $config['sess_use_database']    = TRUE;
    $config['sess_table_name']      = 'ci_sessions';
    $config['sess_match_ip']         = FALSE;
    $config['sess_match_useragent'] = FALSE; //you can try this with TRUE and see if it works
    $config['sess_time_to_update']  = 300;
    

    确保在数据库中也设置了会话表。如果没有,这里是sql,

    CREATE TABLE IF NOT EXISTS `ci_sessions` (
      `session_id` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '0',
      `ip_address` varchar(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '0',
      `user_agent` varchar(150) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `last_activity` int(10) unsigned NOT NULL DEFAULT '0',
      `user_data` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `session_data` text NOT NULL,
      PRIMARY KEY (`session_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    【讨论】:

    • 这个也有。但问题仍然存在
    • 请确认这一点,因为如果会话存储在数据库中(而不是使用 cokkies),那么不同浏览器上的结果会有所不同是没有意义的。正如 ramiro 建议的那样,尝试使用配置变量。我已经用我认为你的会话配置变量应该是什么更新了我的帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多