我创建了一个session-variable,用于将来自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." }
答案 0 :(得分:0)
只有在重新加载页面时才能访问会话变量。 在同一个页面加载中,它将无法访问。 我也碰到了这个问题。 可能取决于执行顺序或其他东西。
如果未设置会话变量,请尝试使用globals数组作为备份。
if(!isset($_SESSION['var'])) $x = $_GLOBALS['var'];
答案 1 :(得分:0)
在会话结束时使用session_write_close();
。