在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