May 12
作者: 肖建彬 | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址:http://www.xiaojb.com/archives/personal/how-to-setcookie-after-http-output.shtml
网址:http://www.xiaojb.com/archives/personal/how-to-setcookie-after-http-output.shtml
服务器向浏览器种cookie是通过http相应的头Set-Cookie来实现的,例如:
Server: nginx/0.6.30
Date: Mon, 12 May 2008 04:58:21 GMT
Content-Type: text/html; charset=gbk
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.2.6
Vary: Accept-Encoding, Accept-Encoding
Content-Encoding: gzip
Set-Cookie: dznet_sid=CLu3BS; expires=Mon, 19-May-2008 04:59:43 GMT; path=/; domain=.discuz.net
假如在setcookie函数运行之前,php有输出,那么setcookie将会失效,经过实验,发现在php的顶部加入
ob_start();
即使有输出,setcookie也不会报错。如果使用了gzip压缩,则是
ob_start('ob_gzhandler');
测试方法
ob_start('ob_gzhandler');
echo "x";
var_dump(setcookie('x', time()));
?>
Recent Comments