这是我的 PHP 代码:
<?php
session_start();
if ( !isset($_SESSION['index_visited']) )
{
$_SESSION['page2_visited'] = 1;
$_SESSION['wrong_number'] = 1;
header('Location: index.php');
}
?>
我认为 $_SESSION['page2_visited'] = 1 和 $_SESSION['wrong_number'] = 1 永远不会被设置。程序将我重定向到index.php,就是这样。
我需要做什么来设置它?
最佳答案
在重定向发生之前, session 可能没有时间正确保存自身。
使用session_write_close();在 header 重定向之前强制保存 session 。
所以会是:
<?php
session_start();
if ( !isset($_SESSION['index_visited']) ) {
$_SESSION['page2_visited'] = 1;
$_SESSION['wrong_number'] = 1;
session_write_close();
header('Location: index.php');
}
?>
session_commit()也有效。它就像 session_write_close() 的别名
关于php - 设置 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970504/