首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >允许php会话转到子域

允许php会话转到子域
EN

Stack Overflow用户
提问于 2009-03-13 23:00:00
回答 8查看 77.4K关注 0票数 77

我对所有的用户数据都使用php会话(不是cookie,除了会话id cookie),当一个用户进入他们的个人资料user.mydomain.com时,他们会立即被“注销”,直到删除子域。

是否有一种方法可以接受来自所有域的会话,只要它的*.mydomain.com

EN

回答 8

Stack Overflow用户

发布于 2009-03-13 23:06:48

这里有4个选项。

将此代码放入您的php.ini:

代码语言:javascript
复制
session.cookie_domain = ".example.com"

或在您的.htaccess中:

代码语言:javascript
复制
php_value session.cookie_domain .example.com

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

代码语言:javascript
复制
ini_set('session.cookie_domain', '.example.com' );

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

代码语言:javascript
复制
php_value[session.cookie_domain] = .example.com
票数 96
EN

Stack Overflow用户

发布于 2012-02-25 00:16:23

代码语言:javascript
复制
        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');

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

票数 13
EN

Stack Overflow用户

发布于 2016-01-18 21:23:52

更改核心函数文件顶部的会话名称,如

代码语言:javascript
复制
 session_name('mysession');

然后在php页面中使用以下代码

代码语言:javascript
复制
  session_set_cookie_params(0,"/",".example.com",FALSE,FALSE);
  setcookie(session_name(), session_id(),0,"/","example.com");
  session_start();

最后,更改子域的默认会话名称,并删除子域核心函数文件中的默认cookie,如下所示:

代码语言:javascript
复制
 /*default session name*/
 session_name("mysession");
 /*remove the PHPSESSID and default session name from subdomain's cookie*/
 setcookie( "mysession", "",1,"/" );
 setcookie( "PHPSESSID", "",1,"/" );

如果您继续使用您的cookie名称作为PHPSESSID,只需使用删除所有函数

代码语言:javascript
复制
 "mysession" string like session_name('mysession'), setcookie( "mysession", "",1,"/" );

然后检查浏览器现有的cookies,只需删除域和子域的所有cookies,并重复该过程。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/644920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档