7

我需要将 cookie 限制在我的 www 子域中,这可以通过我在 php.ini 文件中添加行 session.cookie_domain = www.example.com 来实现。但是,我的服务器上有许多虚拟主机,因此我需要每个域都不同。经过一番网络搜索后,我尝试使用:

'SetEnv session.cookie_domain www.example.com' - in my httpd.conf
'php_flag session.cookie_domain www.example.com' in .htaccess

然而,两者似乎都阻止了 cookie 一起工作!

非常感谢任何帮助!

斯图

4

5 回答 5

3

问题是这php_flag实际上仅适用于布尔值。因此,当使用该php_flag命令时,您实际上设置cookie_domain0,这就是它停止工作的原因。

对于文本值,您需要php_value在 .htaccess 或 apache 配置中使用。还建议引用该值:

php_value session.cookie_domain ".domain.com"

见:http ://www.php.net/manual/en/configuration.changes.php

于 2014-03-14T00:03:02.863 回答
2

实现这一点的最简单方法是使用session_set_cookie_params()而不是通过设置它.htaccess(该.htaccess方法仅在 PHP 用作模块时才有效)。您可以通过以下方式使用它:

session_set_cookie_params(0, '/', 'www.example.com');
session_start();
于 2009-07-22T18:12:22.517 回答
2

另一种选择是使用ini_set

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

于 2009-07-22T18:49:52.580 回答
0

就我而言,这个对我有用:

setcookie("name", $Value4Name, time()+$3600 , "/", ".domain.com");

但这是为您记录域根的 cookie。

欢呼电脑

于 2011-10-22T17:07:58.720 回答
0

此代码 100% 有效,在文件 .htaccess 中设置此代码

php_value session.cookie_path "/"
php_value session.cookie_domain ".localhost"

或文件 JavaScript 的代码

function my_cookie($name, $value, $expires = 0) {
    return setcookie($name, $value, $expires, '/', 'example.com', ...);
}
于 2017-03-09T07:32:35.263 回答