我编写了一个PHP脚本,当我在具有标准配置的本地计算机/服务器上运行时,保留了一个SESSION,但是当我在另一台服务器上运行它时却没有。
我正在运行的代码:
function dump_session() {
echo "\$_SESSION:";
var_dump($_SESSION);
}
session_start();
echo "Session name: " . session_name() . "\n";
dump_session();
echo "Close session\n";
session_commit(); // using session_destroy() as same result;
echo "Start session\n";
session_start();
echo "Session name: " . session_name() . "\n";
dump_session();
在我的本地计算机/服务器上,结果如下:
Session name: BOPHPSESSID
$_SESSION:array(1) {
'FOO' =>
string(3) "BAR"
}
Close session
Start session
Session name: BOPHPSESSID
$_SESSION:array(1) {
'FOO' =>
string(3) "BAR"
}
在另一台服务器上,结果如下:
Session name: BOPHPSESSID
$_SESSION:array(1) {
'FOO' =>
string(3) "BAR"
}
Close session
Start session
Session name: BOPHPSESSID
$_SESSION:array(0) {
}
为什么在其他服务器上清除$_SESSION
? php.ini配置中是否有可能导致此问题的内容?
答案 0 :(得分:0)
答案 1 :(得分:0)
要在php中销毁会话,您需要使用session_destroy或unset()。在使用这些之前,请确保通过执行以下操作来设置会话:if(isset($ _ SESSION [' sessionName']))