更改PHP配置后出现奇怪的PHP会话问题

时间:2013-02-05 03:32:35

标签: php session

所以我有一个PHP函数,用于设置会话变量,如下所示:

function createSVar($varext) { 
 [...]
 $_SESSION['v'.$varext) = time(); // hypothetical value set
 [...]
 return $output;
}

调用它的函数:

function someFunction1() { 
 [...]
 $output = createSVar("name1");
 [...]
 return $output;
}

function someFunction2() { 
 [...]
 $output = createSVar("name2");
 [...]
 return $output;
}

这些功能包含在功能文件中。然后我有一个配置文件设置如下:

<?
ob_start();
session_name("mysession");
session_start();
[...]
include("functions.php");

然后在我的PHP页面上使用如下:

<?
include("config.php");
[...]
echo someFunction2();
[...]
echo someFunction1();

我的问题是这个设置在PHP 5.2.17的两台不同机器上运行良好。在PHP 5.3.0的第三个,它没有。出于某种原因,它会在createSVar()函数的每次调用中更改先前的会话值(对于先前设置的会话变量)。我检查了更改日志,但没有看到任何更新。

这可能是个错误吗?

1 个答案:

答案 0 :(得分:0)

我的第一个倾向是在session_start()之后调用ob_start()。 Session_start()需要发送可能被ob_start()调用缓冲的HTTP头。