Fehler: Warning: Cannot modify header information

Ich suche jetzt schon die ganze Zeit nach einer Einstellung in der Serverkonfiguration, die das ganze unterbinden könnte.
Da finde ich aber auch nichts [...]
Bitte überprüfen, ob Du auch tatsächlich alles berücksichtigt hast: http://php.net/manual/de/configuration.php

Wenn dem so sein sollte, kann mit phpinfo() auf beiden Servern ein Vergleich der Server-/PHP-Konfigurationen durchgeführt werden, um mutmaßliche Unterschiede zu entdecken, die einen Hinweis auf die Fehlerursache geben könn(t)en.
PHP:
<?php
phpinfo();
?>
http://php.net/manual/de/function.phpinfo.php

Beachte hierbei auch die Möglichkeit, die Ausgabe durch Parameter gezielt zu filtern, damit die ellenlange Liste einen nicht erschlägt :cool:

http://php.net/manual/de/function.phpinfo.php#refsect1-function.phpinfo-parameters

[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:
Hi,

Lokal habe ich die Version 7.0.13
Online ist die Version 7.0.14

Lokal ist eine Tabelle "HTTP Headers Information" vorhanden. Diese fehlt in der online PHP-Info.

Ich gehe davon aus, dass die unterschiedlichen Versionen hier nicht ausschlaggebend sind, ob das Fehlen der Tabelle der springende Punkt ist weiß ich leider nicht.
Kann das sein und wenn ja, wie kann ich diesen Punkt dann in der Konfiguration aktivieren?

http://php.net/manual/de/configuration.php geh ich gerade durch.

VG
Umbrielle
 
Lokal ist eine Tabelle "HTTP Headers Information" vorhanden. Diese fehlt in der online PHP-Info.

[...] ob das Fehlen der Tabelle der springende Punkt ist weiß ich leider nicht.
Sowas ist mir auch noch nicht untergekommen, aber man lernt ja bekanntlich nie aus, und so kann es durchaus möglich sein, dass das der Grund ist.

https://de.wikipedia.org/wiki/Liste_der_HTTP-Headerfelder#Antwort-Headerfelder
http://httpd.apache.org/docs/current/mod/mod_headers.html
 
Hi,

das Problem ist behoben. Die Dateien waren doch mit BOM kodiert. Keine Ahnung warum die Anzeige im Editor nicht passte.

Ich habe diesen Code einmal in dem Verzeichnis aufgerufen und wider erwarten wurden sämtliche Dateien umkodiert:

PHP:
<?php
// Tell me the root folder path.
// You can also try this one
// $HOME = $_SERVER["DOCUMENT_ROOT"];
// Or this
// dirname(__FILE__)
$HOME = dirname(__FILE__);

// Is this a Windows host ? If it is, change this line to $WIN = 1;
$WIN = 0;

// That's all I need
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>UTF8 BOM FINDER and REMOVER</title>
<style>
body { font-size: 10px; font-family: Arial, Helvetica, sans-serif; background: #FFF; color: #000; }
.FOUND { color: #F30; font-size: 14px; font-weight: bold; }
</style>
</head>
<body>
<?php
$BOMBED = array();
RecursiveFolder($HOME);
echo '<h2>These files had UTF8 BOM, but i cleaned them:</h2><p class="FOUND">';
foreach ($BOMBED as $utf) { echo $utf ."<br />\n"; }
echo '</p>';

// Recursive finder
function RecursiveFolder($sHOME) {
  global $BOMBED, $WIN;

  $win32 = ($WIN == 1) ? "\\" : "/";

  $folder = dir($sHOME);

  $foundfolders = array();
  while ($file = $folder->read()) {
   if($file != "." and $file != "..") {
     if(filetype($sHOME . $win32 . $file) == "dir"){
       $foundfolders[count($foundfolders)] = $sHOME . $win32 . $file;
     } else {
       $content = file_get_contents($sHOME . $win32 . $file);
       $BOM = SearchBOM($content);
       if ($BOM) {
         $BOMBED[count($BOMBED)] = $sHOME . $win32 . $file;

         // Remove first three chars from the file
         $content = substr($content,3);
         // Write to file
         file_put_contents($sHOME . $win32 . $file, $content);
       }
     }
   }
  }
  $folder->close();

  if(count($foundfolders) > 0) {
   foreach ($foundfolders as $folder) {
     RecursiveFolder($folder, $win32);
   }
  }
}

// Searching for BOM in files
function SearchBOM($string) {
   if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true;
   return false;
}
?>
</body>
</html>

Besten Dank für die Beiträge.

VG
Umbriell
 
Ist ken HTTPS. Die Datei ist UTF8 ohne BOM kodiert.
das Problem ist behoben. Die Dateien waren doch mit BOM kodiert.
Als hätte ich es nicht geahnt, nach den Live-Tests auf meinen Servern (lokal + online), die ein Leerzeichen oder Zeilenumbruch als Ursache defintiv ausgeschlossen hatten, weil ich Deinen gezeigten Code selbstverständlich per "Copy&Paste" übernommen habe, um letzte Gewissheit zu haben :-]
Keine Ahnung warum die Anzeige im Editor nicht passte.
Ich auch nicht.

Woher auch, wenn ich noch nicht mal eine Ahnung davon habe, mit welchem Editor Du arbeitest :D
 
Hi Spicelab,
als Editor benutze ich notepadd++. Damit arbeite ich eigentlich sehr gerne und bisher hat er mich auch noch nicht enttäuscht.
Evtl. ist auch beim Upload irgendwas passiert, da es bei mir lokal ja lief. Was auch immer der Grund war, jetzt funktioniert es.
Nur ärgerlich um die Zeit, die da jetzt unnötigerweise drin steckt.

Nochmal besten Dank für Deine Hilfe!

VG
Umbriell
 
Zurück