2

我从整个域和子域的数据库中打印登录用户的名称。

要将会话从一个页面传递到域中的另一个页面,我使用该功能

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 之间的一页到另一页

4

1 回答 1

0

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

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

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

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

于 2013-07-04T16:09:12.997 回答