澳门新葡萄京娱乐场php实现跨域名 Cookie

Cookie 真是叁个了不起的发明,它同意 web
开垦者保留他们的客户的报到景况。可是,当您的站点或网络有八个上述的域名时就能冒出难点了。

在 Cookie 规范上说,三个 cookie
只好用来一个域名,不可见发给其它的域名。由此,借使在浏览器中对两个域名设置了七个cookie,那些 cookie
对于任何的域大将不著见到效果。如果你想令你的客户从您的站点中的个中一个进展登入,同期也足以在其他域名上开展登陆,那可正是八个灾荒点。

本身的缓和方案将接受下边包车型地铁近似框架:

贰个预置的脚本将用来经受通过 GET 或 董事长KIE 格局传送过来的 sessionid
号。它将比 高管KIE 优先筛选 GET
变量。所以,无论曾几何时要求引用交叉的域名时,咱们把 sessionid 做为贰个 U兰德酷路泽L
参数举办发送。改过 Apache 配置,用来促成重写全数的交叉域名的
cookie。那样做的案由转瞬间就能掌握了。在此外时候现身三个交叉域名援引时采取变量。

第一步:创造预置脚本

将下边包车型地铁代码加到预置脚本中(或出未来具有脚本以前的函数中卡塔尔国。

?php/* 支持交叉域名cookie... 如果GET变量已经设置了,并且它与cookie变量不同 则使用get变量(更新cookie) */global $HTTP_COOKIE_VARS, $HTTP_GET_VARS;if (isset($sessionid)  isset($HTTP_GET_VARS[sessionid])  ($HTTP_COOKIE_VARS[sessionid] != $HTTP_GET_VARS[sessionid])) { SetCookie(sessionid, $HTTP_GET_VARS[sessionid], 0, /, ); $HTTP_COOKIE_VARS[sessionid] = $HTTP_GET_VARS[sessionid]; $sessionid = $HTTP_GET_VARS[sessionid];}?

一经那些代码运营之后,贰个大局的 sessionid
变量将得以用于脚本。它将保存着客商的 cookie 中的 sessionid
值,大概是经过 GET 乞求发来的 sessionid 值。

第二步:为具有的穿插域名引用使用变量

开创叁个大局的配置文件,用于存放能够张开切换的域名的着力援引情势。举个例子,假如我们有着
domain1.com 和 domain2.com,则如下设置:

?php$domains[domain1] = $sessionid-;$domains[domain2] = $sessionid-;?

到现在,即便在代码中如下做:

?phpecho Click a href=/. $domains[domain2]. /contact/?email=yes/here/a to contact us.;?

您将生出如下的输出:

Click a href=?email=yeshere/a to contact us.

在此边 sessionid 已经被插入到 U大切诺基L 中去了。

在这里个地方,你或者会想那样恐怕会在web服务器上开辟名字为横线,sessionid,横线的子目录?!?!?。然则,下边包车型客车步调将提供一个必备的魔术,以便让它能够运用!

第三步:配置Apache

到现在,剩下的步调正是布局 apache 来重写这么些 U揽胜L:

成为那样:

?sessionid=66543afe6543asdf6asd

再正是这种url:

?email=yes

改为那样:

?email=yessessionid=66543afe6543asdf6asd

为了贯彻它,轻易地配备四个设想服务器,作为 domain1 和
domain2,如下操作:

VirtualHost ipaddressDocumentRoot /usr/local/  onRewriteRule ^/-(.*)-(.*?.*)$ sessionid= [L,R,QSA]RewriteRule ^/-(.*)-(.*)$ ?sessionid= [L,R,QSA]/VirtualHostVirtualHost ipaddressDocumentRoot /usr/local/  onRewriteRule ^/-(.*)-(.*?.*)$ sessionid= [L,R,QSA]RewriteRule ^/-(.*)-(.*)$ ?sessionid= [L,R,QSA]/VirtualHost

这一个重写的平整完结了地点三个 UCR-VL 重写的渴求。

结论

通过运用变量结合与 apache 的重写功效,交叉域名 cookie
能够以一种简易的点子完成。想要维护这么的系统,无论什么样时候链接交叉域名,在选拔域名变量之外,什么也不用作了!在域名内部的链接无需实行改造,因为
cookie 会工作平常化。

例如您风乐趣看一下在生育网络中实际运转中的系统,请参观。在一部分交叉域名链接上移动你的鼠标,何况看一下当你点击后它们是怎么样被重写的。

兴许,使用那个技艺独一的难点正是无计可施删除在顾客浏览器中的全体域名下的
cookie。

发表评论

电子邮件地址不会被公开。 必填项已用*标注