php.ini中的session.cookie_domain - POST表单的问题

时间:2011-12-09 20:59:11

标签: session cookies php

我的主域名:www.domain.com有一个Cookie,其设置为:domain.com

用户点击访问www.domain.com/login的链接后,他们会尝试登录(通过POST请求),此表单会将Cookie设置为www.domain.com(添加www)。这会导致很多人出现问题,因为当他们提交登录表单时,页面会刷新。

对某些人来说,它永远这样做(永远不能提交表格)。对于其他人来说,它只有一次 - 而且第二次,它运作正常。它也因浏览器而异......

我的解决方法是什么,我认为我需要在session.cookie_domain in php.ini中输入一些内容 - 但正确的做法是什么?

谢谢大家。

---的更新 --- 用于在登录页面上设置cookie的代码:

$expireTime = 60 * 60 * .5; // 30 minute expire time
session_set_cookie_params($expireTime,"/");
session_start();

1 个答案:

答案 0 :(得分:1)

您需要显式设置域,不用 www,但使用前面的点,作为该函数的第三个参数。

session_set_cookie_params($ expireTime,“/”,“。yourdomain.com”);

无论www是否存在于实际URL中,这都将允许cookie工作。请注意,这也适用于您可能使用的任何其他子域,这通常是一件好事,只需将其放在那里。