0

我刚刚从共享主机包转移到专用云服务器,并将我的完全正常工作的网站上传到了新的专用服务器,会话变量在页面之间传递得很好,现在突然间会话变量丢失了。谁能解释为什么会发生这种情况?

如果需要,我可以从页面中提供更多代码,但我认为这应该足够了。

此外,我确实尝试在页面上设置一个变量,然后在同一页面上显示它并且有效,但是如果该值甚至保存在会话中,因为它在同一页面上,我不会这样做。

我知道 PHP 的版本已从 5.2.17(共享)更改为 5.3.3(专用),但我已经在我的本地机器上使用这些不同的 PHP 版本进行了测试,并且会话变量没有任何问题。这是我给你的两页。

page1.php

<?php


session_start(); 

if (!isset($_SESSION['initiated']))
{
session_regenerate_id();
$_SESSION['initiated'] = true;
}


include_once "header_selector.php";

$_SESSION['duper'] = "Active sessions variable";

page2.php

<?php

ob_start();

session_start(); 

include_once "header_selector.php";

$duper = $_SESSION['duper'];
echo "Model: " . $duper;
4

1 回答 1

0

1) 很可能您的 $_SESSION 存储不可写。

2) 你在调用 ob_start() 时没有对应的 ob_end_flush()。当您移动主机和 PHP 版本时,您可能已经更改了 php.ini 文件,并且可能会通过设置将其搞砸。

3)你没有在 header_selector.php 中调用 ob_end_flush() 是吗?

于 2013-02-28T17:57:36.567 回答