我想在使用www时让我的会话在我的网站上工作。和不使用时。 我读过这个帖子: PHP cookie problem - www or without www
这可行,但我不是在这里创建cookie,而是会话。我该如何解决这个问题?另请注意,我不知道我的脚本将在哪个域上运行,因此不能选择对域进行硬编码。
有办法做到这一点吗?
谢谢
编辑: 我强迫会话ID应该存储在cookie中,所以只有这样才适用。
答案 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,所以这就是同样的问题(和解决方案)。看一下会话配置。
答案 3 :(得分:0)
在所有请求中使用正确的主机名对于会话非常重要。但是,如果您要跨多个子域访问cookie,则可以使用前置句点指定域参数。即,
.example.com的
答案 4 :(得分:0)
我的Cookie遇到了这个问题,你帖子中的链接很好解决了这个问题。
到目前为止,我从未遇到过Sessions的困难。它独立于域或子域,它们存储在服务器端。
您可以在配置文件中设置常量参数DOMAIN_NAME,也可以在数据库中为您的Cookie预先设置,然后只修改一次。