ob_start()和ob_end_flush()的PHP标头问题

diE*_*cho 2 php header

ob_start()在页面开头和ob_end_flush()结尾使用时出现标题问题。因为我在执行一些查询后使用头函数。

 ob_start();
 include_once("header.php");
 global $db;

 $countstmt="SELECT COUNT(*) FROM tbl_lib_hours dh WHERE book_id IN(SELECT book_id FROM tbl_book WHERE user_id=".$_SESSION['uid'].") ";       
 $delHourExist=$db->query($countstmt);  
 if($delHourExist){
      header("location:edit_delivery_hours.php");
 }
 ....
include_once('footer.php');
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)

header.php中,我还添加了ob_start();。footer.php中,我添加了ob_end_flush(); ,但我认为这不是问题,尽管其他页面正在使用我上面编写的相同脚本运行

我得到的错误:

警告:无法修改标头信息-标头已在第9行的D:\ xampp \ htdocs \ project \ add_book_hours.php中发送

Kar*_*ten 5

第一个之前是否有空间<?php

文件开头是否有UTF8-BOM?

  • 不要忘记尾随换行符。此代码示例中有很多空白。在大多数情况下,您只希望源文件中有一个PHP块。会减轻一些痛苦。 (2认同)