允许 PHP 会话转移到子域

2022-08-30 08:30:12

我使用PHP会话(不是cookie,会话ID cookie除外)用于所有用户数据,当用户转到他们的个人资料时,他们会立即“注销”,直到删除子域。user.mydomain.example

有没有办法接受来自所有域的会话,只要它*.mydomain.example


答案 1

这里有4个选项。

把它放在你的 php 中.ini:

session.cookie_domain = ".example.com"

或者在你的.htaccess中:

php_value session.cookie_domain .example.com

或者作为脚本中的第一件事:

ini_set('session.cookie_domain', '.example.com' );

或者在站点的 php-fpm 池配置中:

php_value[session.cookie_domain] = .example.com

答案 2
        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.example');

安全该死,如果你像我一样对不完整或糟糕的答案感到沮丧,这就是你的救世主。它只是工作。


推荐