二级域名怎么设置_thinkphp5开发中session跨域(二级域名)问题的解决

在thinkphp的开发中,经常会遇到session跨域的问题,比如,在www域名下用户登陆后,用户信息保存在session,想在其他二级域名或者三级域名下同步自动登陆,获取到session里面的用户信息,默认是不行的,需要做一些配置更改和测试才行,下面我来说说。

af4bb78ed2096c3f538c7c878886c89c.png
9594d90b9c03c29766beb9b7e54f61e3.png
0981e9be63ecc97bd94e0a9b6f18df84.png

1、打开应用目录下的配置文件,一般为 系统根目录/application/config.php,找到session配置项(如果没有,就自己添加),如下:

// +----------------------------------------------------------------------

// | 会话设置

// +----------------------------------------------------------------------

'session' => [

'id' => '',

// SESSION_ID的提交变量,解决flash上传跨域

'var_session_id' => '',

// SESSION 前缀

'prefix' => '',

// 驱动方式 支持redis memcache memcached

'type' => '',

// 是否自动开启 SESSION

'auto_start' => true,

//过期时间

'expire' => 24*3600*7,

'domain' => '您的根域名', //关键点

'table_name' => 'session',

],

其中的 domain请配置为您的根域名,即不带www的顶级域名,意思就是session的作用域为整个域名根(包含所有下级域名),就行了。

2、清空浏览器的缓存(cookie和临时文件)、清空thinkphp框架的缓存,然后测试是否生效(这里很重要,很多码农在这里扑街,发现怎么也不生效,其实是浏览器的缓存作怪,哈哈哈!)

3、如果域名经常变动怎么办呢,比如我们的erdaicms旅游网站程序,是面对各种客户的,每个客户如果都需要去手工配置,就麻烦大了,这里我在提供一段代码,如下:

$ERdaidomain=$_SERVER['SERVER_NAME'];

$re_domain='';

$domain_postfix_cn_array = array("com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值