问题描述
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分钟后测试即可。
金城在线专注网站、软件、APP、微信公众平台、小程序、抖音、头条等开发推广,如果您有这方面的需求或者不同的观点,欢迎联系交流。
读完这篇文章后,您心情如何?