关于mysql:如何在同一服务器上跨多个域维护PHP会话?

How do I maintain PHP sessions across multiple domains on the same server?

我正在寻找一种在同一服务器上跨多个域维护PHP会话的方法。 我将把我的网站与一个简单机器论坛集成在一起,所以我将需要使用基于MySQL的会话。 谢谢!


根据修改PHP变量的首选方法(Apache的配置,.htaccess),将session.cookie_domain值更改为一致的值。

我有多个子域,Apache配置文件中的每个VirtualHost部分都包含以下行:

php_value session.cookie_domain mydomain.com

如果在.htaccess文件中进行更改,则语法应相似。

更新了bobert5064的评论:

对于多个域(即domain1.com,domain2.org),我认为只需要选择一个通用域名(即domain1.com)。我从未尝试过这样做,因此无法验证它是否有效,但是逻辑似乎正确。

在http://us.php.net/manual/en/function.session-set-cookie-params.php中介绍了还有一种在PHP中设置变量方向的方法。本文档未提及在其他域上设置cookie的能力。


如果一个站点要转发或链接到第二个站点,则可以在链接的href中包含会话ID,也可以将其作为表单的输入。与George的img标签方法类似,但是会话仅在需要时和需要时才进行。

哪个最好取决于您网站的使用方式。