我需要将Cookie限制到我的www子域名,这可以通过在php.ini文件中添加line 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一起工作!
非常感谢任何帮助!
斯图
答案 0 :(得分:3)
问题是php_flag
实际上只适用于布尔值。因此,在使用php_flag
命令时,您实际上是将cookie_domain
设置为0
,这就是它停止工作的原因。
对于文本值,您需要在.htaccess或apache配置中使用php_value
。同时引用该值:
php_value session.cookie_domain ".domain.com"
答案 1 :(得分:2)
实现此目的的最简单方法是使用session_set_cookie_params()
而不是通过.htaccess
设置它(.htaccess
方法仅在PHP用作模块时才有效)。您可以通过以下方式使用它:
session_set_cookie_params(0, '/', 'www.example.com');
session_start();
答案 2 :(得分:1)
另一种选择是使用ini_set:
ini_set("session.cookie_domain", "www.example.com");
答案 3 :(得分:0)
就我而言,这个对我有用:
setcookie("name", $Value4Name, time()+$3600 , "/", ".domain.com");
但这是为你录制域名根目录的cookie。
欢呼声 PC
答案 4 :(得分: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', ...);
}