2012-02-22 60 views
0

是否可以在銷燬前保存會話數據以用於數據庫目的?在銷燬之前保存會話數據?

舉例來說,我有以下數據來自一個會話,

// start session 
session_start(); 

// init session var 
if (!isset($_SESSION['images'])) $_SESSION['images'] = array(); 

array 
    0 => 
    array 
     'image_id' => int 1 
     'image_title' => string 'test 1' (length=6) 
    1 => 
    array 
     'image_id' => int 2 
     'image_title' => string 'test 2' (length=6) 

而且我希望在會議上被破壞,或在瀏覽器關閉時將其發送給數據庫。

if(unset($_SESSION['images'])) 
{ 
    // do something? 
} 

可行嗎?

回答

0

看看custome會議處理你應該想到的session_start();與一個匹配的哈希建立在你的瀏覽器中的一個cookie會話文件放在服務器上,服務器會在你的「會話」處於活動狀態時將任何數據放入$ _SESSION中,一旦你關閉了瀏覽器,從瀏覽器中丟棄了cookie,並最終(由cron調用清理)會話文件將從服務器中刪除。

如果你想存儲一段時間或用戶的持久數據,那麼你應該將它存儲在數據庫,緩存文件,memcache等。

0
if(unset($_SESSION['images'])) 
{ 
    // do something? 
} 

這不符合您的預期(在變量未設置時執行)。相反,它只會成功取消設置會話變量並執行// do something部分。