it-swarm.com.de

Warnung: Header-Informationen können nicht geändert werden - bereits gesendete Header

Mein Protokoll ist mit dieser Meldung überfüllt:

Warning: Cannot modify header information - headers already sent by (output started at /home/path/to/drupal/7/includes/common.inc:2681) in drupal_send_headers() (line 1216 of /home/path/to/drupal/7/includes/bootstrap.inc).

Es tritt nur auf, wenn jemand eine Adresse für einen nicht vorhandenen Kommentar wie folgt eingibt:

http://example.com/comment/874

Wenn der Kommentar vorhanden ist oder für eine andere Adresse, liegt kein Fehler vor. (Ich habe in letzter Zeit viele Spam-Kommentare gelöscht und die Bots kommen immer wieder zurück, um ihre eigenen Kommentare zu lesen. Deshalb gibt es viele nicht gefundene Kommentare.)

Gibt es Mittel, um diesen Fehler zu beseitigen? Das einzige Kommentarmodul, das ich habe, ist Comment Goodness, und es gibt keine Beschwerde über einen solchen Fehler in der Problemwarteschlange. Vielleicht ist es etwas anderes. Ich habe alle meine benutzerdefinierten Moduldateien überprüft und jede beginnt mit <?php und es gibt kein Leerzeichen oder irgendetwas vor diesem Tag und es gibt kein schließendes Tag. Ich habe keine Ahnung, was ich sonst noch überprüfen soll.

5
camcam

In meinem Fall habe ich festgestellt, dass dies auf Module zurückzuführen ist, die versuchen, einen 404 zurückzugeben, indem sie versehentlich drupal_not_found () aufrufen, anstatt die Konstante MENU_NOT_FOUND zurückzugeben. Dies führt dazu, dass drupal_deliver_page () in einer einzelnen Seitenanforderung zweimal aufgerufen wird.

Views ist derzeit der größte Schuldige. Siehe https://drupal.org/node/1414068 (Kommentar Nr. 16) für einen Patch, der das Problem behebt. Sie sollten in Ihrem Modulverzeichnis nach "drupal_not_found" suchen, um andere Module mit diesem Problem zu finden.

6
Les Lim

Ich habe ein paar Dinge gesehen, die das verursachen.

Ein schließendes ?> Für eine Datei mit Leerzeichen danach. Die Konvention Drupal) besteht darin, das schließende PHp-Tag in keiner Datei zu verwenden.

Eine UTF-8-codierte Datei mit einer Stückliste. Die Stückliste befindet sich vor der Eröffnung <?php Und wird ausgegeben.

Nach dem Rat von Yahoo! YSlow und Hinzufügen eines flush() zwischen </head> Und <body> In html.tpl.php

Debuggen Sie direkt mit print oder print_r Anstelle von dsm() im Code.

Ich erinnere mich auch an ein seltsames Problem, bei dem ich Framebusting-Code in einer Vorlagendatei hatte, und wenn eine verknüpfte Ressource 404ed war, dann hatte ich dieses Problem b/c auf der Seite Drupal 404) Laden für die verknüpfte Ressource.

3
mpdonadio

Aufbauend auf der Antwort von Les Lim, kombiniert mit Ihrer Feststellung, dass Sie dies mit Kommentar-URLs sehen, sehen Sie wahrscheinlich das Problem # 2218501 aus dem Modul "Comment Goodness" (verwenden Sie das auf Ihrer Website?). Es fügt einen eigenen Rückruf für Kommentar-URLs ein und ruft tatsächlich drupal_not_found () auf, wenn es den Kommentar nicht finden kann (wo es MENU_NOT_FOUND neu abstimmen sollte).

Das Problem enthält einen Patch, der im Oktober 2014 für den Entwicklungszweig des Moduls festgelegt wurde. Angesichts des Projektstatus und der Problemwarteschlange sieht es nicht so aus, als könnten wir eine aktualisierte offizielle Version erwarten aber bald.

0
Eelke Blok