编程语言
首页 > 编程语言> > 在PHP中通过子域共享会话

在PHP中通过子域共享会话

作者:互联网

我正在使用CI.
我想在子域上共享会话
我正在使用数据库来存储会话

我已经试过了

ini_set('session.cookie_domain', substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100));

if(session_id ==''){session_start();}

这意味着x.y.com和z.y.com将使用普通会话
请帮帮我

解决方法:

考虑到您已经知道域名的事实,是否有理由使用substr来确定它?如果您只是使用以下代码,则可能会提高可读性:

ini_set('session.cookie_domain', '.domain.tld');

为了使Cookie跨多个子域工作,Cookie域必须以点(.)开头,后跟所有子域的公共部分(很可能是domain.tld).

另外,帖子的第二行(检查会话是否需要启动的那一行)是错误的.您会在session_id之后缺少一组括号,因为它是一个函数,而不是一个常量.条件语句(if)总是会失败,导致每次都调用session_start().

if ( empty(session_id()) ) session_start();

标签:php,codeigniter,session,subdomain
来源: https://codeday.me/bug/20191009/1883066.html