-1

我有一个 php 脚本的问题。该脚本由层服务器调用。我调用的脚本在子域scripts.mydomain.com上,它在子域beta.mydomain.com上调用另一个脚本

我已将我的配置设置为在我的域的所有子域之间共享会话。

如果我手动尝试,当我调用调用 beta.mydomain.com 的 scripts.mydomain.com 时,会话值会很好地共享

但是,当调用 scripts.mydomain.com 的是外部服务器时,不会保存会话值。我检查了会话 id,发现外部服务器调用时 scripts.mydomain.com 和 beta.domain.com 上的 id 不同。是我的时候,id是一样的。

header("Location: http://beta.mydomain.com");scripts.mydomain.com中使用

(PS:我不能用GET来给参数,这是约束)

之后,我想使用 jquery AJAX 函数来调用我的 scripts.mydomain.com

同样的问题,没有调用javascript函数,但是当我调用脚本时,javascript被很好地使用并且我的ajax函数成功调用了script.mydomain.com。

有人帮忙吗?

4

1 回答 1

0

会话值存储在每个实例的 PHP 会话临时文件夹中。您的情况听起来像是您正在使用两个单独的服务器或两个 PHP 实例。因此,如果您使用两个 PHP 实例(一个在 beta 上,另一个在脚本上),您的会话值将单独存储,即脚本存储在脚本上,beta 存储在 beta 上。尽管您的会话标识符可以通过 cookie 在两个实例之间共享,但第二个实例无法从第一个实例中找到值。

我的建议是你:

  1. 将两个实例的会话临时文件夹指向一个公共文件夹(如果在同一台服务器上)
  2. 使用会话数据库驱动程序和单独的数据库服务器,用于存储会话信息
于 2012-11-21T14:54:41.517 回答