Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我使用http重定向到主页面时,会话变量丢失_Php_Http_Session - Fatal编程技术网

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

Php 当我使用http重定向到主页面时,会话变量丢失,php,http,session,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='proje

我遇到了一个非常奇怪的问题。
我有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://it不起作用。实际上,会话仍然存在,但没有出现


更新
我想我找到问题了
我用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>
  • 论坛
  • 计划
一切正常。
我很好奇,我想扩大我的知识面。如果有人知道为什么会这样,请告诉我

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

没有

http://www.mysite.com
不是有效的URL,某些Web服务器将假定路径为“/”,某些浏览器将假定路径为“/”,但大多数浏览器将按原样发送URL,并且Web服务器通常将重定向发送回浏览器

只要主机在所有情况下都是相同的,或者省略了,那么代码就会按照您的预期运行——但是您确实应该使用适当的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>
  • 论坛
  • 计划
或者

  • 论坛
  • 计划

您使用什么代码来设置会话?Php抱歉,在链接上看不到我使用Php文件我使用Php函数来存储会话当然我使用会话_start();然后我用$_SESSION['username']检索会话;当您从工作页面转到非工作页面时,域名是否会更改?i、 e.www总是存在吗?不简单,我使用a href='projects.php',但它显示的url栏www.mypage.com/projects.php也适用于我在代码中放置的论坛a href='forums.php',在url栏中它位于www.mypage.com/forums.php,仅适用于我使用http的主页,如果我单击我的徽标,我使用http转到主页,则不会显示会话Up您的浏览器是否可能在实现会话用户名之前显示页面的缓存版本?你在“非工作”页面上强制刷新了吗?好的,你说我应该使用httpp://www.mysite.com/ 好的。此外,我还编写了一个php文件,用于检查url,如果用户在url栏上仅键入mysite.com,则该php文件基于页面,我会说forums.php会将页面名称作为参数,如checkUrl('forums.php'),如果url为mysite.com/forums.php,则该函数将添加httpp://www.mysite.com/forums.php . 这是非常好的工作。这个解决方案行吗?注:在链接上添加了额外的p,以防止创建链接
<ul>
 <li><a href='/'>Homepage</a></li>
 <li><a href='/forums.php'></a>Forums</li>
 <li><a href='/projects.php'></a>Projects</li>
</ul>