我有一個基於模板的站點,它始終依賴於持久會話。最近我需要通過定義數據庫存儲的保存處理程序來擴展會話存儲。這在框架內的類的一般範圍內工作正常,但是當任何頁面發出ajax請求時,會話標識將被重新生成,並且如果表單被提交,則前一個會話不見了。Ajax和PHP會話
<?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')
);
}
腳本 - 這ouhtit Ajax請求單獨的文件或嵌入結構,你可能已經忘記了在session_start() – 2014-11-24 06:23:31
的處理程序類是從索引頁面和ajax頁面調用的。在每個頁面上設置處理程序後調用session_start。會話不會保持持久性,每次調用session_start時都會重新生成id,這使得不能從ajax傳遞會話並在主類中保留它們。 – Finn 2014-11-24 06:37:23
你能告訴我你是如何處理會議的嗎? – Tristup 2014-11-24 06:41:49