PHP会话在子域上失败

时间:2012-11-16 03:00:43

标签: php html

所以我有一个登录/会话系统设置,可以很好地工作一段时间。但是,在过去几天内,会议未能进入子域。

我一直在使用session_start调用上面的以下内容:

session_set_cookie_params(0, '/', '.domain.com');

再次,这很好。您可以在基本域登录,然后移动到子域并继续进行会话。或者您可以登录子域并移动到其他人。例如:

  • 登录domain.com工作
  • 移至subdomain.domain.com不
  • 转到domain.com/subdomain工作

此脚本未进行任何更改。它失败了。也许主持人负责?

修改 即使您登录子域,也会创建PHP会话但不起作用。尽管您可以在浏览器的cookie中看到PHP会话,但没有$ _SESSION数组数据可用等。

2 个答案:

答案 0 :(得分:0)

尝试使用 ini_set()功能,例如:

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

或尝试使用 .htaccess

php_value session.cookie_domain .domain.com

或者尝试将安全参数设置为false,例如

session_set_cookie_params(0, '/', '.domain.com', false, false);

答案 1 :(得分:0)

修正了它。似乎我在PHP.ini中的session.save_path设置为/ tmp,无论出于何种原因,它都不允许我的子域工作或访问会话文件。

我将PHP.ini更改为html层次结构中的新文件夹,但它确实有效。

仍在使用session_set_cookie_params(0,'/','。domain.com');以及我之前的所有设置。所以我的代码很好,不知何故保存路径停止工作。很奇怪。