我已经建立了与用户登录一个网站。 现在,由于某种原因,当我从该网站的IP地址输入,并从网站的域名创建不同的会话。
在网站上我使用一个全局参数,命名为:ROOT其中:
define("HOST", "localhost/final-project-management-system");
define("ROOT", "http://".HOST."/");
我给很多的相关链接ROOT
的网站。
当我尝试连接到IP,初始会话建立,但是当我移动到同一个页面中ROOT
参与,一个新的会话创建和旧的会话将被删除。
有没有人有任何想法,为什么出现这种情况?
谢谢 ..
PHP会话是基于饼干的范围,以及你所描述的行为究竟是如何工作的。
Cookie的范围由出现在浏览器的地址栏中基于所述主机名(或IP)的字符串值简单地定义。 仅仅因为一个主机名解析到一个特定的IP,并不意味着他们分享饼干。
如果你想想那基础上解析的IP地址,cookie的范围将可能导致与Cookie的网站之间漏出当你考虑共享的主机环境中的重大问题。
为了正确有这个工作,用户必须通过两种 DNS名称或 IP地址,不能同时访问该站点。 您可以手动传递会话ID解决这个问题,但它不来推荐的(不是我,无论如何)。
如果在浏览器的URL中包含IP地址和饼干在那里通过可能会导致新的会话创建存储在对主机名或它的父域,饼干不会被发送的请求的一部分的浏览器。
最好的做法是有一个规则,在服务器端,如果传入的请求包含主机头的IP地址只是重定向到该URL包含主机名/ FQDN的位置。 网站,如谷歌,当一个请求时使用的IP地址的网站做的Facebook会返回一个302重定向。
你已经尝试的var_dump()会话?
var_dump($_SESSION);
你开始在PHP的顶部的session_start()?