避免服务器中的输出缓冲错误

时间:2012-04-28 07:37:37

标签: php

我正在开发w网站。这里我有一个thumnail页面。它在我的localhost中运行良好。但是当我上传它给我看错时看到

Warning: Cannot modify header information - headers already sent by (output started at /mydomain/demo1/admin/thumbnail.php:50) in /mydomain/demo1/admin/act-addVehicle.php on line 191

我的代码

if(move_uploaded_file ($tmpName,$path.$actual_image_name)){
                        $succ=1;
                        chmod("$add",0777);
                        $imgSucc=1; 
                            //strt image thumbnail
                        include("./thumbnail.php");
                        // ends
                        }else{ echo "Failed to upload file Contact Site admin to fix the problem"; 
                        exit;}

我如何避免此错误 php ini中有任何设置吗?

有人知道吗? 请回复

3 个答案:

答案 0 :(得分:1)

这种错误通常来自于您的某个文件中有一个关闭的php标记,后面跟着一些空格。在执行脚本执行“header()”函数之前,此空白区域将被发送到浏览器。

例如,我对您的thumbnail.php或act-addverhicule.php以“?>”结尾不会感到惊讶标签后面有一些空格。

作为一种好的做法,最好在文件末尾删除所有关闭的php标记(“?>”),以避免出现这类问题...

答案 1 :(得分:1)

如果没有看到 thumbnail.php 的代码,很难确切知道发生了什么,但基本上它在第191行 act-addVehicle.php 之前输出的东西正在设置另一个报头中。

最有可能是脚本末尾的单个空格。在?>之后检查,或许在第50行之后检查。

您可以将include('thumbnail.php')包装到ob_start()和ob_end_clean()中,但这不会解决在设置新标题之前输出的基本问题。

答案 2 :(得分:0)

当然。在代码开头的某处使用ob_start功能