会话值设置在一个文件中,不能在其他文件中读取

时间:2012-09-10 13:11:43

标签: php

我创建了一个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." } ­

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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