Ajax and PHP Sessions


Ajax and PHP Sessions

我有一个基于模板的网站,它始终依赖于持久会话。最近,我需要通过定义数据库存储的保存处理程序来扩展会话存储。这在框架中类的一般范围内工作正常,但是当任何页面发出ajax请求时,会话ID将被重新生成,如果表单被提交,则上一个会话将消失。

  <?php
 require_once('site-database.php');
 require_once('site-config.php');

 class FileSessionHandler
 {

 private $database;
 private $life_time;

 public function FileSessionHandler(){

 $this->life_time = get_cfg_var("session.gc_maxlifetime");
 $this->database = new database();
 $this->database->newConnection(db_host,db_user_name,db_user_pass,db_user_database);

 session_set_save_handler(
array(&$this,'open'),
array(&$this,'close'),
array(&$this,'read'),
array(&$this,'write'),
array(&$this,'destroy'),
array(&$this,'gc')
);

}

请检查您是否已使用 session_start() 启动会话。

我更改了 php.ini 文件中的一些变量,以查看其中是否有某些内容导致问题,现在它在数据库中的工作方式与基于文件一样。保持相同的 ID。

session.cookie_secure在.ini文件中设置为 1,我将其更改为 0。