开发者社区> 问答> 正文

headers already sent by

已解决

展开
收起
2018-07-01 06:23:46 632 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    问题描述

    php程序出现报错:”Warning: Cannot modify header information - headers already sent by ….”

    问题原因

    在PHP里Cookie的使用有一些限制:1、使用setcookie必须在标签之前2、使用setcookie之前,不可以使用echo输入内容3、直到网页被加载完后,cookie才会出现4、setcookie必须放到任何资料输出浏览器前才送出

    解决办法

    1、在输出内容之前产生cookie,可以在程序的最上方加入函数 ob_start();ob_start :打开输出缓冲区函数格式:void ob_start(void)说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

    2、如果是独立ECS服务器开启php.ini中的output_buffering,即:output_buffering = On;这种方法开启了所有php程序的输出缓存,这样做可能影响php执行效率,这取决于服务器的性能和代码的复杂度。

    3、如果是Linux系统虚拟主机,请将控制面板的PHP.ini设置中的【输出缓冲区数据块设置】参数设置为启用,等待3分钟后测试即可。

    1

    2018-07-06 18:46:23
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载