【问题描述:】
Warning: Cannot modify header information- headers already sent by (output started atC:\AppServ\www\CRM\Admin\index.php:2)in C:\AppServ\www\CRM\Admin\index.phpon line 4
====================================================================================================
稍微有点经验的php程序猿都应该非常清楚的知道,当我们准备使用header这个函数时,必须保证此句代码之前不能有任何输出。
所谓的输出并不是单单指php语句中的echo printf print_r等函数的输出,其实header前边有html语句也是不可以的,原理是因为在php中的输出语句在标准情况下是输出到该html文件中,并与文件中的其他代码共同组成html代码来让浏览器识别和解析的,故可知,header前边的html语句也不应该有。
【解决方法】
header()前边不能有任何输出和html语句,那么显而易见,不让header()前边有输出语句不就成了?好多教程都说让把输出给去掉,其实不然,还有更好的解决办法(别喷啊!)------那就是将header()放到页面的最前边即可。
【解决方法】
上边的情况试过之后估计80-90%的童鞋们估计都已经把问题给解决了吧?为什么说是80-90%呢?当然还会有其他问题了,呵呵!现在继续讲解决方法!!!
在上边的解决方法没能成功解决您的问题的时候,那么您就应该过来看看下边的解决办法了,这个一定适合您。
很多实用dreamweaver来编辑php页面的童鞋,大家要注意了,页面会默认 包括unicode签名(BOM)这个东西会造成您的页面开头部分会有定高度的空白输出,但是我们又不容易发现,这样就会出现明明header()前边没有任何语句,但是问题依然会发生的情况,很恼人。而且还会出现一种问题,大家可以看看自己有没有被这些困扰,那就是:使用php 中的include函数引进的php页面总是在上方留出一定高度的空白,虽不是什么大问题,但非常影响美观,调整css样式又无法去掉。
Warning: Cannotmodify header information - headers already sent by (output started atC:\AppServ\www\CRM\Admin\index.php:2)in C:\AppServ\www\CRM\Admin\index.phpon line 4
【解决方法】
用dreamweaver打开要处理的php文件,
点击修改-》
点击页面属性-》
点击标题/编码-》将【包括Unicode签名(BOM)(S)】前边的方框中对勾去掉—》点确定进行保存即可
刷新页面问题就解决了!赶紧试试吧!
【解决方法】