不能设置cookie?

时间:2011-03-09 22:36:47

标签: php cookies

我正在使用

public function setCookie() {
  $value = $this->info('id').':'.$this->info('salt');
  //$value == '1:0842d579c6c9f08401d7204240d06930'
  $expire = (time()+((3600*24)*365));
  return setcookie("remember", $value, $expire);
}

并且它返回true,

但是当我在下一页打印出$_COOKIE时,唯一的cookie集就是php sess id。

为什么不设置?

<小时/> 备注
设置cookie的页面是通过ajax请求的 当前页面/ ajax的页面/下一页都在同一域名上 在设置cookie之前没有发送任何内容

1 个答案:

答案 0 :(得分:2)

  

bool setcookie(string $ name [,   string $ value [,int $ expire = 0 [,   string $ path [,string $ domain [,bool   $ secure = false [,bool $ httponly =   false]]]]]])

来自setcookie手册页。

尝试设置域名和路径值,看看是否有效,IE:

setcookie("remember", $value, $expire, '.domain.com', '/');

修改

如果您正在使用localhost,请在此处获取更多信息:

来源:http://www.aeonity.com/frost/php-setcookie-localhost-apache

setcookie("username", "George", false, "/", false);

你会使用那个版本。我不完全确定为什么localhost需要工作。更好的方法是在apache中设置虚拟主机,然后修改hosts文件以添加将vhost设置为ServerName的内容。这将避免您必须修改setcookie函数以使其工作,因此当您推送到临时/生产时,您不必担心黑客攻击。