当我使用http重定向到主页时,我的会话变量丢失了

时间:2012-01-18 04:29:43

标签: php http session

我遇到了一个非常奇怪的问题 我有3页:
home.php
forums.php
projects.php

每个页面都有这样的菜单:

<ul>
 <li><a href='http://www.mysite.com'>Homepage</a></li>
 <li><a href='forums.php'></a>Forums</li>
 <li><a href='projects.php'></a>Projects</li>
</ul>

当用户登录时会设置会话并显示顶部用户名的每个页面 如果我在“项目”页面中,并且当我登录时我的用户名位于顶部,现在我想转到主页,当我在项目和论坛中循环时,用户名在顶部,会话不会丢失。当我点击主页时,它转到主页会话丢失,用户名丢失在顶部。

我认为问题在于第一个链接主页。 当我这样做时 index.php 一切正常,但是这个 http:// 它无效。实际上会议仍在那里,但没有出现。

<小时/> 更新
我想我发现了问题 我将所有菜单链接转换为完整链接,http不仅仅是像

这样的php文件
<ul>
 <li><a href='http://www.mysite.com'>Homepage</a></li>
 <li><a href='http://www.mysite.com/forums.php'></a>Forums</li>
 <li><a href='http://www.mysite.com/projects.php'></a>Projects</li>
</ul>

一切正常 我很好奇,我想扩展我的知识。如果有人知道为什么会这样,请告诉我。

1 个答案:

答案 0 :(得分:0)

  

将所有菜单链接转换为完整链接

没有

http://www.mysite.com不是有效的网址,有些网络服务器会认为路径为'/',某些浏览器会假设路径为'/',但大多数浏览器会按原样发送网址,而网络服务器则会通常会将重定向发送回浏览器。

只要主机在所有情况下都相同或省略,那么代码将按照您的预期运行 - 但您确实应该使用正确的URL来避免细微的语义问题,即

<ul>
 <li><a href='http://www.mysite.com/'>Homepage</a></li>
 <li><a href='http://www.mysite.com/forums.php'></a>Forums</li>
 <li><a href='http://www.mysite.com/projects.php'></a>Projects</li>
</ul>

...或

<ul>
 <li><a href='/'>Homepage</a></li>
 <li><a href='/forums.php'></a>Forums</li>
 <li><a href='/projects.php'></a>Projects</li>
</ul>