使用ob_flush提示:E_WARNING: Cannot modify header information
使用ob_flush提示:E_WARNING: Cannot modify header information - headers already sent
请问如何解决?
代码如下:
echo $show_msg."<script>$script</script>";
ob_flush();
flush();
回复讨论(解决方案)
BOM头吧。
错误提示已经写的很清楚了,响应头已经输出,所以不能再修改头信息
应该是你没有新开一层ob,直接输出了数据(同时输出了响应头),默认就直接送出到浏览器了
使用ob正常情况下是先将数据写在ob里面,当写完后再输出ob里面的内容.
错误提示已经写的很清楚了,响应头已经输出,所以不能再修改头信息
应该是你没有新开一层ob,直接输出了数据(同时输出了响应头),默认就直接送出到浏览器了
使用ob正常情况下是先将数据写在ob里面,当写完后再输出ob里面的内容.
简单的说就是你可能没有使用ob_start
function flush_buffers(){ ob_end_flush(); ob_flush(); flush(); ob_start(); }
错误提示已经写的很清楚了,响应头已经输出,所以不能再修改头信息
应该是你没有新开一层ob,直接输出了数据(同时输出了响应头),默认就直接送出到浏览器了
使用ob正常情况下是先将数据写在ob里面,当写完后再输出ob里面的内容.
简单的说就是你可能没有使用ob_start
具体怎么用呀?我是在phpwind上面开发的。他前面一个insert操作,搞不懂为何弄个输出出来,我翻遍了代码也没发现哪里有输出。总之,我是无法改变他输出这个事实了,我无法改变他的代码。我是在他后面使用flush的。有什么解决方法吗?
function flush_buffers(){ ob_end_flush(); ob_flush(); flush(); ob_start(); }
用了,还是出错呀。
我是在phpwind上面开发的。他前面一个insert操作,搞不懂为何弄个输出出来,我翻遍了代码也没发现哪里有输出。总之,我是无法改变他输出这个事实了,我无法改变他的代码。我是在他后面使用flush的。有什么解决方法吗?
BOM头吧。
前面应该是有输出了。有没有什么函数可以忽略前面的输出?好像记得有。ob_end_flush、ob_flush、 flush、ob_start这些总把我搞得晕头转向
ob_flush(); 是推出缓存,不可能出现你说的问题
只有 header、session_start、setcookie 才可能出现
E_WARNING: Cannot modify header information - headers already sent
请你认真检查一下错误信息所提示的出错地点
ob_flush(); 是推出缓存,不可能出现你说的问题
只有 header、session_start、setcookie 才可能出现
E_WARNING: Cannot modify header information - headers already sent
请你认真检查一下错误信息所提示的出错地点
你说的有道理,如果前面因为输出导致报错的话,我自己输出的早就报错了。但出错的确是ob_flush这行。
我怀疑前面是不是有Ob_Start('ob_gzhandler');这些类似的代码了。
ob_flush(); 是推出缓存,不可能出现你说的问题
只有 header、session_start、setcookie 才可能出现
E_WARNING: Cannot modify header information - headers already sent
请你认真检查一下错误信息所提示的出错地点
假如让你在
echo 'sd';ob_flush(); flush();
这段代码的前面加上一行什么代码让他出错。你会加什么代码?
除非出现语法错误,#10 的代码前加什么都不会出错!
但是在后面加 header、session_start、setcookie 之一,就可能出错了
你最好贴出完整的错误信息
除非出现语法错误,#10 的代码前加什么都不会出错!
但是在后面加 header、session_start、setcookie 之一,就可能出错了
你最好贴出完整的错误信息
我找到问题的答案了。是我那行代码阻碍了系统的报错,而不是系统影响了我那行代码的运行。报错信息如下:
Uncaught error with message 'E_WARNING: Cannot modify header information - headers already sent by (output started at E:\AppServ\www\phpwind\upload\src\extensions\pwpick\service\srv\helper\AdminOutputHelper.php:323)'The server encountered an internal error and failed to process your request. Please try again later. If this error is temporary, reloading the page might resolve the problem. If you are able to contact the administrator report this error message.(http://www.windframework.com/)
这个报错信息是phpwind自己搞出来的,他自己有个函数专门搞这个
/** * 错误视图渲染 * * @param array $__vars */ private function render($__vars, $errorcode, $errDir, $errPage) { @extract($__vars, EXTR_REFS); unset($__vars); ob_start(); $this->getResponse()->setStatus($errorcode); $this->getResponse()->sendHeaders(); require $errDir . '/' . $errPage . '.htm'; exit(); }
看到$this->getResponse()->sendHeaders();这行了吗?我前面有输出了,他再搞这行就出错了。我被他报错在 ob_flush();这个误导了。
谢谢大家的关注。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。
