如何在同一台服务器上的多个域中维护PHP会话?

时间:2008-10-28 16:46:54

标签: php mysql session

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

2 个答案:

答案 0 :(得分:7)

根据您修改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的能力或能力。

答案 1 :(得分:1)

如果一个站点要转发或链接到第二个站点,它可以在链接的 href 中包含会话ID,或者在表单中包含输入。与George的 img tag 方法类似,但会话只会在需要时移动。

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