2012-04-30 18 views
0

我正在开发一个使用PHP会话的站点,但$ _SESSION数组仅在“/index.php”文件名存在时才起作用。 “/”和“/index.php”指向相同的文件,但由于某种原因,PHP会话仅在URL地址中可视地显示“/index.php”时才起作用。我在网上搜索了这是为什么,还没有找到答案。任何想法为什么发生这种情况?PHP会话只在查看实际的index.php时才起作用?

*注意:会话同时在本地主机上的“/”和“/index.php”上工作,但不在我的实际服务器上!

+0

你开始了所有php文件的会话? –

+0

检查会话cookie设置,并使用诸如Firefox的HTTPFox和/或Firebug的NetTab之类的嗅探器来查看标题中来回的内容。 –

+0

@vipin:'/'和'/ index.php'都会加载SAME脚本。 –

回答

0

你在看同一个域名吗?我在我的网站上遇到了这个问题 - 请注意www.example.org与example.org不是一样的域名。

此外,请确保两个网址上的PHPSESSID Cookie相同。如果不是,则加载不同的会话。

+0

我试着添加www。之前的域名,但它没有区别,我也检查了PHPSESSID,他们都是一样的。我在index.php文件本身上创建了一个测试会话变量,该变量显示在“/”和“/index.php”上,但在不同的PHP文件上创建的会话仅显示“/ index .php“文件? –

+0

你确定你的目录索引是index.php吗? 我不知道为什么它会在其他地方,但它是我能想到的唯一合乎逻辑的事情。 – Shane

+0

积极,其中。我难住为什么它的行为... –