我发现$ _SESSION显然没有设置,但不同浏览器/ PC之间的效果会有所不同。什么对FF有效,在我的桌面XP上的FF失败,在XP上我的笔记本电脑上运行。
我将脚本减少到最低限度,如下所示。
<?php
session_start();
define("_CMS_SYSTEMNAME", " Stock Reporting");
define("_CMS_TEST" , true);
define("_ROOT" , $_SERVER["DOCUMENT_ROOT"]) ;
define("_CMS_WELCOME" , _ROOT."/admin/logon/welcome.htm");
define("_OUTERPAGE",_ROOT.'/admin/adminincludes/adminpages.htm' );
echo "Session Variables After Session Start : "; print_r($_SESSION); echo "<br>";
$Middle="../mydetails/mydetails.htm";
include(_OUTERPAGE);
?>
如果我在文件夹A中运行它(www.mytest.mydomain.co.uk/admin/FolderA/myscript.php) 然后我得到了我的期望:
Session Variables After Session Start : Array ( [abidata] => YTo4Ontz{long string
of data}jAiO319 [Sess_LogonUserID] => 1 [Sess_Manuf] => [Sess_Prod] =>
[Sess_Code] => [Sess_OrderBy] => )
如果我在文件夹B中运行它(www.mytest.mydomain.co.uk/admin/FolderB/myscript.php) 然后我得到一个空的结果:
Session Variables After Session Start : Array ( )
我尝试过更改文件名,但没有区别,但更改文件夹会有所不同。我的托管支持认为他们无法以不同的方式处理任何一个文件夹,但它似乎只是一个有所作为的文件夹。
我没有办法进一步调查此事。
答案 0 :(得分:0)
谢谢大家。 找到了解决方案 - 一种解决方案。 我们发现另一个网站存在同样的问题。会话变量未在输入时设置,但如果相同的脚本在不同的文件夹中运行,那么它们就会神奇地存在。 (它与包含文件无关 - 请参阅原始帖子中的脚本 - 当时不是任何文件。)
常见的因素是两个站点都有一个mod来改变会话变量的超时。 setcookie('PHPSESSID',$ _COOKIE ['PHPSESSID'],时间()+ 150000);
这似乎在某种程度上扰乱了特定于文件夹的会话变量的工作。删除cookie可以解决问题。
为什么会这样,我不知道。