会话cookie和www

时间:2011-03-15 13:11:10

标签: php session

我想在使用www时让我的会话在我的网站上工作。和不使用时。 我读过这个帖子: PHP cookie problem - www or without www

这可行,但我不是在这里创建cookie,而是会话。我该如何解决这个问题?另请注意,我不知道我的脚本将在哪个域上运行,因此不能选择对域进行硬编码。

有办法做到这一点吗?

谢谢

编辑: 我强迫会话ID应该存储在cookie中,所以只有这样才适用。

5 个答案:

答案 0 :(得分:2)

在调用session_start之前使用session_set_cookie_params函数,它允许您设置会话域和其他东西,将域设置为您的域前缀为。使会话也可用于子域。

答案 1 :(得分:1)

您可以为此反映php.ini。在php.ini中添加此项,以便您的会话cookie将保存在可以使用或不使用www

访问的位置
session.cookie_domain = .example.com 

您也可以尝试替代方案

ini_set("session.cookie_domain", ".example.com"); 

您可以使用$_SERVER['HTTP_HOST']变量获取主机名。

答案 2 :(得分:0)

PHP使用cookie作为会话ID,所以这就是同样的问题(和解决方案)。看一下会话配置。

http://php.net/manual/en/session.configuration.php

答案 3 :(得分:0)

在所有请求中使用正确的主机名对于会话非常重要。但是,如果您要跨多个子域访问cookie,则可以使用前置句点指定域参数。即,

.example.com的

答案 4 :(得分:0)

我的Cookie遇到了这个问题,你帖子中的链接很好解决了这个问题。

到目前为止,我从未遇到过Sessions的困难。它独立于域或子域,它们存储在服务器端。

您可以在配置文件中设置常量参数DOMAIN_NAME,也可以在数据库中为您的Cookie预先设置,然后只修改一次。