我如何检查会话
我有一个第三方脚本,想知道如何在PHP
之前检查session_start()
是否在做某事之前已经声明?
something like if(isset($_session_start())) { //do something }
if(!isset($_SESSION)) {
session_start();
}
该检查将允许您保持当前会话处于活动状态,即使它是一个循环提交应用程序,如果您计划在数据输入不正确时重新使用表单,或者在继续执行下一个程序之前在程序中进行了其他检查和平衡,那么该循环提交应用程序仍然有效。
在PHP> = 5.4.0中,你有函数session_status()告诉你它是否已经初始化或者是否被禁用。
例如,你可以这样做:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
你可以在http://www.php.net/manual/en/function.session-status.php阅读更多关于它的信息
我想你可以使用session_id
函数:
如果没有当前会话(不存在当前会话ID), session_id()
将返回当前会话的会话ID或空字符串(“”)。
或者,也许用isset
测试$_SESSION
是否被设置,可能会做到这一点,因为当没有会话开始时它不应该被设置 - 你只需要希望什么都没有分配任何东西给$_SESSION
而不先启动会话。