PHP中出现“标头已发送”错误的原因和解决方法-创新互联
PHP
在招远等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都做网站 网站设计制作按需设计网站,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,外贸网站建设,招远网站建设费用合理。PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。
运行脚本时,出现如下错误:
警告:不能更改头信息-已经( 输出在/some/file.php:12开始 )在/some/file.php发送上线23头
错误消息中提到的行包含header()和setcookie()调用。
这可能是什么原因? 以及如何解决?
一个简单的提示:在脚本中,就在第一个
我之前曾多次收到此错误,并且可以肯定所有PHP程序员至少一次收到过此错误。
可能的解决方案1
该错误可能是由文件开头之前或文件结尾之后的空格引起的。这些空格不应在此处。
例)这里应该没有空白
echo "your code here";
?>
THERE SHOULD BE NO BLANK SPACES HERE
检查与导致此错误的文件关联的所有文件。
注意: 有时,像gedit(默认的Linux编辑器)之类的EDITOR(IDE)在保存文件上添加一个空行。 这不应该发生。 如果您使用的是Linux。 您可以使用VI编辑器删除页面末尾?>之后的空格/行。
可能的解决方案2:如果不是您这种情况,请使用ob_start输出缓冲:
这将打开输出缓冲,并且将在缓冲页面之后创建标题。
代替下面的行
//header("Location:".ADMIN_URL."/index.php");
写
echo("");
要么
?>
肯定会解决您的问题。 我遇到了同样的问题,但通过上述方式编写标题位置解决了。
另一个不好的做法可能会引起此问题,尚未说明。
请参见以下代码段:
事情还好吧?
如果“ a_important_file.php”是怎么办:
----------This is the end of the an_important_file-------------------
这行不通吗? 为什么?因为已经生成了新行。
现在,尽管这不是常见的情况,但是如果您使用的是MVC框架,该框架会在将内容移交给控制器之前加载大量文件? 这并非罕见的情况。 为此做好准备。
从PSR-2 2.2开始:
所有PHP文件都必须使用Unix LF (linefeed) line ending 。
所有PHP文件都必须以single blank line结尾。
only php包含only php文件中必须omitted ?>标记
相信我,遵循这些标准可以为您节省很多时间:)
通常,当我们在回显或打印后发送标题时,会出现此错误。 如果在特定页面上发生此错误,请确保在调用start_session()之前该页面没有回显任何内容。
不可预测的错误示例:
//your page content
再举一个例子:
结论:在调用session_start()或header()函数header()甚至是空格或换行符session_start()之前,请勿输出任何字符
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页题目:PHP中出现“标头已发送”错误的原因和解决方法-创新互联
文章路径:http://pwwzsj.com/article/jdjoh.html