Klaus: 404 Status-Code an Browser senden

Guten Tag,

Ich habe eine index.php, welche Variablen übertragen bekommt und damit den entsprechenden inhalt anzeigt. Sollte die Variable nicht stimmen, soll der 404 fehlercode gesendet werden.

Wenn also jemand statt index.php?zeige=kontakt die falsche url index.php?zeige=contact eintippt.

Ich habe gelesen, das dies mit:

<?php header("HTTP/1.1 404 Not Found"); ?>

möglich ist.

Wenn ich diesen code einbinde, bekomme ich folgende Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at ...index.php:11) in ...index.php on line ...

Ich denke es liegt daran, das die seite index.php ja gefunden wurde und bereits eine statusmeldung "200 erfolgreich" an den browser gesendet wurde.

Gibt es eine irgendeine Möglichkeit, diese Fehlermeldung zu realisieren?

Vielen Dank!

Klaus

  1. Guten Tag,
    Warning: Cannot modify header information - headers already sent by (output started at ...index.php:11) in ...index.php on line ...

    Ich denke es liegt daran, das die seite index.php ja gefunden wurde und bereits eine statusmeldung "200 erfolgreich" an den browser gesendet wurde.

    Nein, es liegt daran, dass dein Script bereits Bestandteile des Response-Body gesendet hat. Dies kann auch nur eine \n zu viel gewesen sein.

    Die Lösung lautet, no <del>sex</del><ins>echo</ins> before <del>marriage</del><ins>header()</ins>.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  2. Hallo!

    Gibt es eine irgendeine Möglichkeit, diese Fehlermeldung zu realisieren?

    Ja, indem du vorher keinen Header sendest. Das geschieht automatisch mit der ersten Ausgabe (wenn du es nicht bereits anders gemacht hast).
    Du musst die Auswertung also vor der ersten Ausgabe vornehmen und anhand dessen dann entscheiden welchen Header+Inhalt du schickst.

    Grüße, Matze

  3. Moin!

    Wenn ich diesen code einbinde, bekomme ich folgende Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at ...index.php:11) in ...index.php on line ...

    Wenn du nach dieser Fehlermeldung googlest, kriegst du ungefähr drei Millionen Fundstellen in Foren, wo Leute deine exakte Frage schon unendlich häufig vor dir gestellt hatten. Es wäre überflüssig redundant, die einzige richtige Erklärung hier nochmal duplizieren zu wollen.

    Merke: Das Auftreten einer Fehlermeldung sollte einen immer zuerst veranlassen, diesen genauen Wortlaut zu googlen. Wenn es sich um ein seltenes Phänomen handelt, das vorher noch nie oder nur selten auftrat, ist eine Frage gerechtfertigt. Sonst eher nicht.

    - Sven Rautenberg

    1. Hi,

      Merke: Das Auftreten einer Fehlermeldung sollte einen immer zuerst veranlassen, diesen genauen Wortlaut zu googlen.

      Das sollte eigentlich nicht das Erste sein.

      Das Erste sollte sein, die Fehlermeldung zu lesen. Da steht in diesem Fall ja eigentlich schon alles drin, was man wissen muß, um den Fehler zu beheben.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      O o ostern ...
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.