即使PHPSESSID相同,PHP7会话也不会保存

Ada*_*dam 1 php session

令我惊讶的是"PHPSESSID"没有改变,所以会话设置.

当我删除我的cookie并刷新页面"PHPSESSID"得到改变.

这是我的代码:

if (!is_writable(session_save_path())) {
    echo 'Session path "'.session_save_path().'" is not writable for PHP!';
} // checking if its the problem but it's not. 

if (!isset($_SESSION['started'])) { 
// i've tried with session_status() == PHP_SESSION_NONE but with the 
// same result
    session_start();
    echo 'session started<br>';
    $_SESSION['started'] = 1;
    $_SESSION['test']= 'TestValue<br>';
}

echo ($_SESSION['test']) ?? 'Nothing Found<br>';
Run Code Online (Sandbox Code Playgroud)

输出总是:

session started
TestValue
Run Code Online (Sandbox Code Playgroud)

PHP版本:7.1.13

系统:Ubuntu 16.04

Sys*_*all 8

$_SESSIONsession_start()在被叫时才可用.

所以if (!isset($_SESSION['started'])) {永远都是如此.

你应该使用:

session_start();
if (!isset($_SESSION['started'])) { 
    $_SESSION['started'] = 1;
    $_SESSION['test']= 'TestValue<br>';
}
Run Code Online (Sandbox Code Playgroud)