PHP会议取得未设置(PHP sessions getting unset)

2019-10-18 04:24发布

我使用一个会话变量来存储登录数据。 在当地,一切工作顺利,它很好地登录,不注销其间页面。

但是,当我把服务器上的相同的文件,由于某种原因,我得到注销。 我已经发现了这个帖子,并使用下面的代码,以防止动态网页的缓存尝试:

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

虽然这似乎并没有工作。 是否有解决这个问题的任何其他可能的解决方案?

编辑:请注意, session_start()是在每一页上。

编辑2:我做了一些进一步的调查,看来我的一些链接链接到www.mysite.com上时mysite.com 。 将这种新的一页,使该$_SESSION[]没有设置增值经销商,并与后退按钮返回到前一个页面时,你可以看到$_SESSION[]仍设置。

Answer 1:

会话使用cookie,所以当你改变域(www.site.com到site.com)这些cookie不被传送。

设置你的服务器有一个规范的网址,并重定向大家的是(例如,规范上site.com,重定向到www.site.com site.com)。

这是我如何处理重定向Apache中:

ServerAlias www.site.com my.site.com site.net www.site.net sites.com www.sites.com site.com
RewriteEngine On
RewriteCond %{SERVER_NAME} !=site.com
RewriteRule ^(.*) https://site.com/$1 [R=301]

我更喜欢site.com过www.site.com,除非你正在做一些不同的两个人使人们键入一个额外的四个大字似乎一文不值。 SEO的我的(跛脚)的理解是,你是不是在两个URL(site.com/stuff和www.site.com/stuff)有重复的内容最好选择一个



文章来源: PHP sessions getting unset