php跨域的解决方法(非分布式服务器解决方案)

今天开发再次遇到一个需求:用户登录之后,在不同的二级域名都可以看到当前用户的登录状态。

其实比较简单,就是在开启session_start()之前添加配置页面,对不同域名下的cookie设置相同域。

例如thinkphp框架下,在index.php中加入

ini_set('session.cookie_domain', '.your_domain.com');   //设置cookie的域

为了测试session_id()的相同性,可以在session_start()开启后执行如下代码,在不同域名下查看

session_start();      //开启session
print session_id();  //输出当前的session_id
exit;

测试时,记得重新打开浏览器。这是才会重新分配session_id();

扩展阅读
https://blog.csdn.net/moqiang02/article/details/23260503
推荐一篇原创文章,对session的原理、跨域、分布式session讲的比较不错。

你可能感兴趣的:(php跨域的解决方法(非分布式服务器解决方案))