我遇到了一些我无法弄清楚的会话问题。 我有一个在index.php开头加载的类。 (下面的代码是摘录,但是第一个执行的代码)。 如果用户注销,我尝试销毁会话,此时我得到“试图在session_start之后销毁未初始化的会话”错误。 如果用户没有注销,我访问会话变量没有问题。 在尝试确定原因时,我添加了代码来检查session_status并在session_start()之后立即找到PHP_SESSION_ACTIVE,但是当我再次在session_destroy()之前检查unsetSession函数中的session_status时,我发现会话未处于活动状态。怎么可能?
class UserAccess
{
public function __construct($page)
{
session_start();
if ($page == 'logout') {
$this->logout();
} else {
$this->checkSession();
}
}
private function unsetSession()
{
session_destroy();
}
private function logout()
{
$this->unsetSession();
}
Index.php:
<?php
define ('BASE_DIR', __DIR__ . '/');
include("includes/config.php");
include(INCLUDE_DIR . 'autoload.inc.php');
//** Get Target Page
$current_page_uri = HTMLSPECIALCHARS($_SERVER['REQUEST_URI']);
$path = parse_url($current_page_uri, PHP_URL_PATH);
$part_url = explode("/", $path);
$page = end($part_url);
$DB = DB::dbConnection();
$UserAccess = new UserAccess($page);