令我惊讶的是"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
$_SESSION仅session_start()在被叫时才可用.
所以if (!isset($_SESSION['started'])) {永远都是如此.
你应该使用:
session_start();
if (!isset($_SESSION['started'])) {
$_SESSION['started'] = 1;
$_SESSION['test']= 'TestValue<br>';
}
Run Code Online (Sandbox Code Playgroud)