2013-03-01 82 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