【问题标题】:Codeigniter session data lost after redirect (after using memcached as session storage)重定向后 Codeigniter 会话数据丢失(使用 memcached 作为会话存储之后)
【发布时间】:2017-02-17 20:50:09
【问题描述】:

我有一个服务器,其中包含许多使用 CodeIgniter 作为框架的 PHP 应用程序。一切运行良好。

但是,在使用 Memcached 作为会话存储之后(我之前使用默认文件来存储会话),我的一个应用程序的反应很奇怪。虽然其他应用程序运行良好,但在重定向到主页后,我的应用程序的会话很少丢失。

为了调试,我使用这样的语句

class Home extends CI_Controller {

    public function __construct()
    {
            parent::__construct();
           // Your own constructor code

            var_dump($_SESSION); die;

            $this->mysession->check_no_session();
            $this->mysession->check_session_expires();
    }

    public function index()
    {
            $this->libs->check_main_template('welcome_message','');
    }
}

转储显示会话中没有存储任何内容:array(0) { }

但是在我在同一台服务器上的其他应用程序中,当我进行调试时,会话数据显示完美。

我使用模板构建了这些应用程序,这意味着所有配置大部分都是相同的,那么我必须查看哪些配置/文件来识别/比较正常和错误应用程序以发现可能导致此异常的配置?

有什么想法吗?提前感谢您的帮助。

【问题讨论】:

标签: php codeigniter session memcached


【解决方案1】:

好的,我想我找到了根本原因。

显然我的一位同事在应用程序中对index.php 设置了一个指令,超出了内存缓存的限制,如下所示:

define('SESSION_TIME_OUT', x);
ini_set('session.gc_maxlifetime', SESSION_TIME_OUT);
ini_set('session.cache_expire', SESSION_TIME_OUT);
session_start();

x 替换为适当的数字(memcache 仅接受 2,592,000 或 30 天以下的数字),则问题不再存在。

【讨论】:

    猜你喜欢
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多