首页 » 建站技术 » PHP 技术 » 浏览内容

如何解除页面输出对setcookie的影响?


2008-06-05 21:22:03 4,272 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

服务器向浏览器种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');

测试方法

<?php
  • ob_start('ob_gzhandler');
  • echo "x";
  • var_dump(setcookie('x', time()));
  • ?>

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今5098 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2018-8-31 17:57:04
    • 您是本站第 14281376 位访客

    广告区 Guǎng Gào