我创建了一个会话变量,用于将错误消息从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();
。