会话变量未从$ _REQUEST保存

时间:2013-08-14 15:40:17

标签: php session session-variables

我想我错过了一些明显的东西。我在页面顶部开始了一个会话。下面我有以下代码。当从请求的页面显示时,var dump out会放置"one"。刷新var dump out后放NULL。为什么这没有得救?

if($_REQUEST["page"] == 1) {
    $_SESSION["one"] = true;
}

var_dump($_SESSION["one"]);

2 个答案:

答案 0 :(得分:0)

首先,您需要确保在尝试使用它之前启动会话。其次,建议您指定POST或GET,而不是通常使用REQUEST。如果你想支持GET或POST,你可能会这样做:

// Begin Session Management
session_start();

// Check both GET and POST for the parameter
if($_GET['page'] == 1 || $_POST['page'] ) {
    // Modify the session 
    $_SESSION["one"] = true;
}

// See what we ended up with in the session.
var_dump($_SESSION["one"]);

这对我有用,但我使用memcache作为会话会话处理程序。在php.ini中验证您自己的会话处理程序,并确保会话处理程序正常工作。此外,如果要重定向,设置新位置或以不寻常的方式退出,请确保正确关闭会话。

答案 1 :(得分:0)

如果您的页面顶部有session_start(),那么您的代码应如下所示:

session_start();

if($_REQUEST["page"] == 1) {
    $_SESSION["one"] = true;
}

var_dump($_SESSION["one"]);

这应该100%有效,毫无疑问。还有一些东西会阻止你在代码中使用你没有提供的代码。我的第一个猜测是某种会话毁灭。