在session_start();没有达到目的

时间:2013-07-04 15:00:42

标签: php

我在整个域和子域中打印数据库中已记录用户的名称。

要在域中将会话从一个页面传递到另一个页面,我使用函数

session_start();

完全在一台主机的PHP服务器上实现其目的,但它在其他主机的应用程序服务器上根本不起作用。

同样,要在域和子域之间将会话从一个页面传递到另一个页面,我使用函数

session_set_cookie_params

这完全可以在一台主机的PHP服务器上实现其目的,但它在其他主机的应用服务器上根本不起作用。

其他主机的PHP服务器上的当前会话配置如下:

session.auto_start   Off
session.cookie_path  /
session.save_path    /tmp

我在具有不同主机的两个不同站点中使用完全相同的应用程序。其他主机的应用程序服务器配置出了什么问题?

示例:

www.mysite.com本身以及www.mysite.com,www.sub1.mysite.com和www.sub2.mysite.com之间的另一页的一页到另一页

1 个答案:

答案 0 :(得分:0)

默认情况下,Cookie仅适用于确切的域匹配。由于PHP会话依赖于这些,因此适用相同的规则。

您可以使用session_set_cookie_params或相关的ini配置更改PHP用于会话的设置。

session_set_cookie_params(3600*24, '/', '.mysite.com');

请注意域上的前导点以指示所有子域都适用。