【问题标题】:CodeIgniter session losing dataCodeIgniter 会话丢失数据
【发布时间】:2011-01-25 22:57:38
【问题描述】:

我不确定为什么,但我在页面之间丢失了 CodeIgniter 会话数据。并且会话 ID 正在改变。什么可能导致这种情况?设置后不应该可以从任何页面访问吗?

在配置页面这里设置会话数据:

<?php $config = array(
                    'power' => $_COOKIE['power'],
                    'oemclass4' => $_COOKIE['class'],
                    'cooling' => $_COOKIE['cooling'],
                    'beam' => $_COOKIE['beam'],
                    'wavelength' => $_COOKIE['wavelength'],
                    'model_no' => $_COOKIE['part']);

    $this->session->set_userdata('config', $config);

?>

然后,用户将被重定向到包含其配置详细信息的页面。会话用户数据仍然存在。然后它们被 Javascript 重定向(window.location)到登录页面,然后用户数据就消失了。

【问题讨论】:

  • 显示一些代码怎么样?对于可能有问题的两个控制器?你还有任何 custom 自动加载的库、可能会重置会话的插件吗?!
  • 您是否有一个可以让其他人测试的实时站点,以排除您的本地环境?
  • 上面的代码。仅涉及一名控制器。没有自定义自动加载的库。这适用于实时站点但不同的域。
  • 这是 Javascript 重定向!有人对为什么有任何想法吗?
  • 嗯,所以重定向到不同的域?

标签: codeigniter


【解决方案1】:

在本地主机上工作时确实如此。将 cookie_domain 指定为 localhost。这将保留页面重定向上的所有会话数据。

【讨论】:

    【解决方案2】:

    在 localhost 上工作时,我曾在某处阅读过在 cookie 域中使用 127.0.0.1。但是,当我将 cookie_domain 更改为“localhost”时,会话开始工作。我计划切换到本地会话,但更改为“localhost”有效,并且我已经在 localhost 上与 CI 会话一起移动。

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题。请确保例如,如果 base_url
      设置为 dynamic.dns.com,您在 localhost 上输入 127.0.0.1 对其进行测试
      或 localhost,这些都是浏览器的不同域,这可能会导致
      这个问题。

      希望对你有帮助:)

      【讨论】:

        【解决方案4】:

        因为config cookie,我的session_id一次又一次地改变。

        $config['cookie_prefix'] = '';
        $config['cookie_domain'] = '';
        $config['cookie_path']   = '/';
        

        但我一直有一个问题...我的 BDD 已使用本地会话 php 更新,但我在 user_data 中的 vars 已被破坏 >

        【讨论】:

          猜你喜欢
          • 2013-06-08
          • 1970-01-01
          • 1970-01-01
          • 2013-01-28
          • 1970-01-01
          • 2012-12-16
          • 2013-01-06
          • 1970-01-01
          • 2015-04-20
          相关资源
          最近更新 更多