Wieso erhalte ich diese Fehlermeldung / Was bedeutet sie?

3 Antworten

irgendwas gibst du vorher aus und wenn das nur ein leerzeichen ist was vor deinem <?php ... ?> tags ist .

header daten werden vor dem body gesendet, ist schon irgendwas an body gesendet worden , kann es nicht mehr verarbeitet werden .

bau deine verarbeitung und umleitung vorher , dann wird sofort umgeleitet . wenn du das nachher haben willst weil dur wirklich was anzeigen willst und dann woanders hin , mach es mit javascript und einem timer damit der user auch sieht was passiert .

immer das EVA prinzip beachten ,

Eingabe

Verarbeitung

Ausgabe

gibts nichts auszugeben was der user sehen soll , ist die weiterleitung auf eine andere seite die ausgabe .

HoiZusammen  26.10.2022, 08:10

die gute alte EVA ^^

1

Du hast eine Ausgabe im Skript, irgendwo bevor die header Funktion aufgerufen wird, die musst du aufspüren und beseitigen. Also vermutlich ein echo, print, var_dump oder ähnliches. Möglicherweise befindet sich irgendwo vor den öffnenden PHP Tags (<?PHP) oder nach einem schließenden auch ein Whitespace- oder Leerzeichen, das übersieht man schon Mal. Überprüfe auch das Encoding deiner Datei, womöglich hast du sie mit einem BOM gespeichert, das sind 2 oder auch 3 Byte am Anfang der Datei, die dazu da sind, um die Byte-Reihenfolge anzugeben (die sieht man auch nicht). Sowas braucht man eigentlich nicht mehr, ist eher ein Legacy Konstrukt. Um sicher zu gehen, schau dir deine PHP Datei mit einem Hex Editor an, ich kann HxD sehr empfehlen. Wenn die ersten Bytes aus "EF BB BF", "FE FF" oder "FF FE" oder einer anderen unerwarteten Sequenz besteht, ist das vermutlich ein BOM. Alternativ Mal mit Notepad++ öffnen, das erkennt idR das Datei Encoding recht zuverlässig, und wenn dort UTF8/UTF16/UTF32 mit BOM steht, solltest du sie konvertieren, zum entsprechenden Zeichensatz aber eben ohne BOM. Das beste was du machen kannst (sagen wir der beste Kompromiss) ist, Dateien in UTF-8 ohne BOM abzulegen.

Rauszufinden wo ein Output stattfindet, kann eine nervtötende Suche sein, aber jetzt hast du ein paar Anhaltspunkte die dir helfen sollten, dieser Ursache auf die Spur zu kommen :)

Woher ich das weiß:Berufserfahrung
Wieso erhalte ich diese Fehlermeldung

Weil bereits etwas ausgegeben wurde (zum Beispiel mittels echo), bevor du die Weiterleitung gesetzt hast.

Alex

JFhatFragen2 
Fragesteller
 25.10.2022, 21:55

Wieso hat den echo an einer ganz anderen Stelle Auswirkungen auf die header Funktion?

0
EinAlexander  25.10.2022, 21:58
@JFhatFragen2
Wieso hat den echo an einer ganz anderen Stelle Auswirkungen auf die header Funktion?

Weil die header Funktion natürlich nur dann aufgerufen werden darf, solange sonst noch keine Inhalte ausgegeben wurden.

0
JFhatFragen2 
Fragesteller
 25.10.2022, 22:00
@EinAlexander

Gibt es eine Alternative wie ich den Nutzer an eine anderer Website weiterleiten kann trotz der Verwendung von echo davor?

0
EinAlexander  25.10.2022, 22:04
@JFhatFragen2
Gibt es eine Alternative wie ich den Nutzer an eine anderer Website weiterleiten kann trotz der Verwendung von echo davor?

Erst abfragen, ob weitergeleitet werden soll und danach eine evtl. Ausgabe mit echo machen.

0
elenaBC2411  25.10.2022, 22:05
@JFhatFragen2

Für was das echo davor? Wenn du weiterleitest, sieht die Ausgabe doch eh niemand.

1
JFhatFragen2 
Fragesteller
 25.10.2022, 22:11
@TechPech1984

Ich habe mittlerweile eine alternative mit Mischung aus PHP und JavaScript gefunden. Es wird erst header ausgeführt und wenn das nicht klappt mir JavaScript

0
EinAlexander  25.10.2022, 22:11
@TechPech1984
aus fehlern lernt man .

Er fragt wie es richtig geht, du gibst ihm eine unsinnige Antwort und garnierst das mit der Aussage "aus Fehlern lernt man".

So ganz hast du den Sinn einer Ratgeberplattform nicht verstanden ...

1
EinAlexander  25.10.2022, 22:13
@JFhatFragen2
Ich habe mittlerweile eine alternative mit Mischung aus PHP und JavaScript gefunden.

Das ist grottenschlecht, unsinnig und evtl. gefährlich. Was spricht dagegen, gleich richtiges PHP zu programmieren?

0
TechPech1984  25.10.2022, 22:23
@EinAlexander

ich kenne viele andere beispiele , wo leute nie fehler machen und 10 jahre später gehen sie dann auf den straßenstrich oder stehen am bahnhof .

aber ich geb dir recht, seine doppellösung ist eher eine komplette katastrophe .

0