[英]Codeigniter session data lost after redirect (after using memcached as session storage)
我有一個使用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) { }
但是在同一服務器的其他應用程序中,當我進行調試時,會話數據顯示完美。
我使用模板構建這些應用程序,這意味着所有配置大多是相同的,所以我必須看到在OK和錯誤應用程序之間識別/比較什么配置/文件以發現可能導致此異常的配置?
任何想法? 先謝謝您的幫助。
好吧,我想我找到了根本原因。
顯然,我的一位同事在應用程序中為index.php
設置了一個超出memcache限制的指令,如下所示:
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天以下的數字),然后問題不再存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.