CTT*_*CTT 84
这里有4个选项.
把它放在你的php.ini中:
session.cookie_domain = ".example.com"
Run Code Online (Sandbox Code Playgroud)
或者在.htaccess中:
php_value session.cookie_domain .example.com
Run Code Online (Sandbox Code Playgroud)
或者作为脚本中的第一件事:
ini_set('session.cookie_domain', '.example.com' );
Run Code Online (Sandbox Code Playgroud)
或者在您网站的php-fpm池配置中:
php_value[session.cookie_domain] = .example.com
Run Code Online (Sandbox Code Playgroud)
suc*_*vel 13
if(isset($_COOKIE['session_id']))
session_id($_COOKIE['session_id']);
Zend_Session::start(); //or session_start();
if(!isset($_COOKIE['session_id']))
setcookie('session_id', session_id(), 0, '/', '.yourdomain.com');
Run Code Online (Sandbox Code Playgroud)
安全被诅咒,如果你像我一样对不完整或不好的答案感到沮丧,这就是你的救世主.它只是有效.
更改核心函数文件顶部的会话名称
session_name('mysession');
Run Code Online (Sandbox Code Playgroud)
然后使用以下代码进入php页面
session_set_cookie_params(0,"/",".example.com",FALSE,FALSE);
setcookie(session_name(), session_id(),0,"/","example.com");
session_start();
Run Code Online (Sandbox Code Playgroud)
最后更改子域的默认会话名称,并删除子域的核心函数文件中的默认cookie,如:
/*default session name*/
session_name("mysession");
/*remove the PHPSESSID and default session name from subdomain's cookie*/
setcookie( "mysession", "",1,"/" );
setcookie( "PHPSESSID", "",1,"/" );
Run Code Online (Sandbox Code Playgroud)
如果您继续使用您的cookie名称作为PHPSESSID,只需删除所有功能
"mysession" string like session_name('mysession'), setcookie( "mysession", "",1,"/" );
Run Code Online (Sandbox Code Playgroud)
然后检查浏览器的现有cookie,只需删除域和子域的所有cookie,然后重复此过程.