2013-03-01 79 views
0

Php提供功能session_write_close。我想檢查會話是否已關閉。 session_id()仍然返回值。檢查是否阻塞寫入會話

session_start(); 

// 
// Some code there 
// 

session_write_close(); 

// 
// Some code there 
// 

if(/*is session write closed?*/) 
    echo 'Session closed'; 
else 
    echo 'Session still opened'; 
+0

你想殺了會議?如果是這樣,那麼還有其他一些方法可以做到這一點。請描述你的問題...... – Aborted 2013-03-01 13:41:10

+0

'session_write_close()'幫助我修復一個錯誤。我發現了這個功能,現在我只是好奇,我想增加我對PHP會話的知識。這就是爲什麼我創造了這個問題 - 這是想象中的問題。 – Kasyx 2013-03-01 13:47:08

回答

1

所有你需要的是

session_start(); 
session_write_close(); 
var_dump(sessionStatus()); // this would return false 

而且

session_start(); 
var_dump(sessionStatus()); // true 

功能用於

function sessionStatus() { 
    if (function_exists('session_status')) { 
     return (session_status() == PHP_SESSION_ACTIVE); 
    } 
    return defined('SID'); 
} 
+0

在我的系統(php 5.4.11和5.3.21)中,'SID'常數看起來像'session_id()'一樣表現出來,它仍然被定義並在session_write_close()後面保存了session id。 – complex857 2013-03-01 17:14:42