php session正在为一个变量创建两个(不需要的)cookie

时间:2014-03-29 21:48:00

标签: session cookies

我无法在Safari中重现这一点,但在Chrome和Firefox中,首次登录用户(退出浏览器或从新位置访问)会创建两个Cookie,一个用于&# 34; www.example.com" 和一个用于" example.com" 。结果是,一旦我登录并在主页上,当我点击第二个登录页面时,我会自动注销。当我再次登录时,第二次,"www.example.com"只有一个cookie,一切正常;我没有随机退出。这就是我创建会话的方式:

session_regenerate_id(true); // destroying the old session id and creating a new one
$_SESSION['id'] =  $login;
setcookie("id", $login, strtotime( '+30 days' ), "/", "", "", TRUE);

我在每页的顶部都有session_start();。 $ login变量是用户名/密码检查通过后从数据库中提取的用户ID,它正在回显并正确显示在cookie中。

我不理解它,因为它只是第一次发生,到目前为止仅在Firefox和Chrome中发生。它不会在任何浏览器本地发生,只会在这两个浏览器的实时服务器上发生。

1 个答案:

答案 0 :(得分:0)

为子域 .example.com

设置Cookie
  

setcookie(" id",$ login,strtotime(' +30天')," /"," .example.com&# 34 ;,   "",TRUE)