会话值设置在一个文件中,可以';不要在其他地方读


Session value set in one file, can't read in other

我创建了一个会话变量,用于将错误消息从mail.php文件传递到调用它的文件。

session_start();
if(something) {
    $_SESSION['error'] = "something went wrong";
}

我试着在名为mail.php的文件中读取它:

if(!empty($_SESSION['error'])) {
    echo $_SESSION['error'];
} else {
    echo "Email sent!";
}

但它不起作用。我在这两个文件的页面顶部调用session_start()。

var_dump给出以下内容:

array(1) { ["error"]=> string(41) "Not all fields are filled in." } ­

只有在重新加载页面时才能访问会话变量。在同一页面加载中,它将无法访问。我也碰到了这个。这可能取决于执行命令或其他什么。

如果未设置会话变量,则尝试使用全局数组作为备份。

if(!isset($_SESSION['var'])) $x = $_GLOBALS['var'];

在会话调用结束时使用session_write_close();