无法修改标头信息 - 已发送的标头

时间:2016-11-11 14:15:22

标签: php mysql

我阅读了有关此标题的主题,但无法使其适用于我的程序。我之前删除了html和空格,但仍然看不出有什么问题。 connect.php文件的目的是连接到数据库,我使用app_config.php文件从connect.php调用handle_error函数来打印尝试连接数据库时发生的任何错误。非常感谢你的帮助!

错误是:

  

警告:无法修改标题信息 - 已在/ home3 / alfredbiz / public_html / phpMM / ch05 / app_config中发送的标题(输出从/home3/alfredbiz/public_html/phpMM/ch05/scripts/connect.php:1开始)第12行的.php

这是connect.php

<?php
//appel le fichier de mot de passe
require_once '/home3/alfredbiz/public_html/phpMM/ch05/app_config.php';
require_once '/home3/alfredbiz/public_html/phpMM/ch05/app_connexion.php';

//database connexion
$link = mysqli_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME);

// check connection
if (!$link) {   
$user_error_message = "there was a problem connecting to the database that holds the information we need to get you connected.";
$system_error_message = mysqli_connect_error();
handle_error($user_error_message, $system_error_message);
}

//editer les tables avec controle d erreur
$result = mysqli_query($link, "show tables");
if(!$result){
    die("<p>Error in Listing tables: " .mysql_error() . "</p>");
}
echo "<p> requette executee avec success</p>";
?>

app_config.php

<?php
//set up debug mode
define("DEBUG_MODE", true);

function debug_print($message) {
if(DEBUG_MODE) {
echo $message;
  }
}

function handle_error($user_error_message, $system_error_message) {
header("location: /home3/alfredbiz/public_html/phpMM/ch05/scripts/show_error.php?" ."error_message={$user_error_message}&" ."system_error_message= {$system_error_message}");
exit();
}
?>

2 个答案:

答案 0 :(得分:0)

app_config.php文件中的回显可能是导致问题的原因。一旦您回显了任何内容,就无法更改标题信息。您可能希望将echo移动到handle_error函数中的header()之后。

答案 1 :(得分:0)

这是由BOM(字节顺序标记)引起的常见错误。对此的指标是输出从第1行开始。

请参阅重复的帖子How to fix "Headers already sent" error以获取解决方案。