PHP头条
热点:

PHP应用session对两个不同的服务器网站进行同步登录


PHP 使用session对两个不同的服务器网站进行同步登录
现在有两个服务器
a:www.test1.com
b:www.test2.com
我想在test1里面进行登录,然后在test2里面也同样进行登录,请问这个该怎么写?

我有部分测试代码如下
在test1登录的时候,如果登录成功那么就执行下面
$fp = pfsockopen("www.test2.com",80,$errorno,$errormsh);//连接服务器
if ($fp){
     $out = "GET /login.php?acc=".$acc."&psw=".$psw." HTTP/1.1\r\n";   
     $out.= "Host:www.test2.com\r\n";   
     $out.= "Connection: Close\r\n\r\n";   
     
     fputs($fp, $out);
     fclose($fp);   
}


然后在www.test2.com里面的login.php文件
$acc = $_GET['acc'];
$psw = $_GET['psw'];
$_SESSION['acc'] = $acc;
$_SESSION['psw'] = $psw;


然后我访问www.test2.com
发现session为空啊  
求高手指教! PHP session 跨域? 登录? 分享到:
------解决方案--------------------
如果单点登录这么容易搞得话,那些 SSO 服务商不都要倒闭了?

session 依靠 cookie 携带的 sessionid 做唯一性识别
而正常的 cookie 是不能跨域的。虽然利用一些技术手段可以实现 cookie 跨域,但这毕竟是利用了规则上的漏洞,并不可取。

我们知道,如果一个网站有设置了失效期的 cookie 的话,当浏览结束时就会在浏览器缓冲区留下一个以该网站域名的 cookie 文件。当再次访问该网站时,这个上次保存的 cookie 就会被发送回去

因此,你只要在访问 www.test1.com 的时候,设法留下一个 www.test2.com 的 cookie 文件
那么你再访问 www.test2.com 的时候就能实现同步了

怎么留?在 www.test1.com 返回的页面中用 iframe 或 js 访问一下 www.test2.com 的特定文件

当然,这只是基础,需要考虑的问题远不止这点


------解决方案--------------------
只要 www.test2.com/login.php 是在 www.test1.com 返回的页面里面调用的就可以
就是说你在访问 www.test1.com 的同时也访问了 www.test2.com
这样 www.test1.com 的 cookie 供访问 www.test1.com 用
www.test2.com 的 cookie 供访问 www.test2.com 用

------解决方案--------------------
“在 www.test1.com 返回的页面里面调用”是指请求是从浏览器发出的,这样返回的 cookie 才会被浏览器保存

www.phpzy.comtrue/phprm/8959.htmlTechArticlePHP应用session对两个不同的服务器网站进行同步登录 PHP 使用session对两个不同的服务器网站进行同步登录 现在有两个服务器 a:www.test1.com b:www.test2.com 我想在test1里面进行登录,然后在te...

相关文章

相关频道:

PHP之友评论

今天推荐