Klaus: !(header already sent)

Hallo,
wenn man die Funktion header(..); benutzt, dann darf davor ja keine Ausgabe sein.
Das Problem ist jetzt, mein lokaler Entwicklungsserver (PHP5) ignoriert diese.

Bsp:
<html>
<?php
header("location: ziel.php");
exit;
?>

Funktioniert bei mir Einwandfrei, aber mein Webspace-Server (PHP4) gibt, wie gewohnt, die Fehlermeldung: header already sent aus.

Jetzt wollte ich Fragen ob dies am Unterschied PHP4/PHP5 liegt, oder ob ich in der php.ini es so einstellen kann, dass bei meinem lokalen Server diese Fehlermeldung auch erscheint.

Grüße Klaus

  1. Hallo

    wenn man die Funktion header(..); benutzt, dann darf davor ja keine Ausgabe sein.
    Bsp:
    <html>
    <?php
    header("location: ziel.php");
    exit;
    ?>

    Funktioniert bei mir Einwandfrei, aber mein Webspace-Server (PHP4) gibt, wie gewohnt, die Fehlermeldung: header already sent aus.

    Das macht er ja, dem Beispiel nach, richtig.

    Jetzt wollte ich Fragen ob dies am Unterschied PHP4/PHP5 liegt, oder ob ich in der php.ini es so einstellen kann, dass bei meinem lokalen Server diese Fehlermeldung auch erscheint.

    Das kannst du in der php.ini einstellen. Im Abschnitt "Error handling and logging" werden die möglichen Einstellungen beschrieben und vorgenommen.

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    Veranstaltungsdatenbank Vdb 0.1
    1. Hallo

      Das kannst du in der php.ini einstellen. Im Abschnitt "Error handling and logging" werden die möglichen Einstellungen beschrieben und vorgenommen.

      Zur Skriptentwicklung ist die beste Einstellung: error_reporting  =  E_ALL & E_NOTICE

      Damit wirst du selbst über die Verwendung nicht initialisierter Variablen informiert. Sehr praktisch, das!

      Tschö, Auge

      --
      Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
      (Victor Hugo)
      Veranstaltungsdatenbank Vdb 0.1
      1. Hallo,
        naja am error_reporting hat es nicht gelegen.

        Und zwar kann man in der php.ini die Pufferung der Ausgabe angeben.
        Unter: output_buffering

        Wenn der Eintrag gesetzt ist, dann funktioniert mein Beispiel, also die Person wird an die Seite weitergeleitet.

        Wenn es nicht gesetzt ist, dann erhält man diese Fehlermeldung (header already sent...)

        Grüße
        Klaus

        1. Hallo Klaus.

          Und zwar kann man in der php.ini die Pufferung der Ausgabe angeben.
          Unter: output_buffering

          Das sollte, wenn überhaupt, lieber direkt im betroffenen Skript eingesetzt werden: ob_start.

          Wenn es nicht gesetzt ist, dann erhält man diese Fehlermeldung (header already sent...)

          Richtig, nach diesem Prinzip funktioniert ja auch die Ausgabepufferung.

          Gruß, Ashura

          --
          Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
          Try it: Become an Opera Lover in 30 days
          Meine Browser: Opera 8.0 | Firefox 1.0.3 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
        2. Hallo

          naja am error_reporting hat es nicht gelegen.

          Und zwar kann man in der php.ini die Pufferung der Ausgabe angeben.
          Unter: output_buffering

          Wenn der Eintrag gesetzt ist, dann funktioniert mein Beispiel, also die Person wird an die Seite weitergeleitet.

          Ahja, hab' ich dich wohl falsch verstanden. Das geht auch im Skript mit ob_start() und ob_end_flush() (Beginn und Ende des Pufferns).

          Tschö, Auge

          --
          Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
          (Victor Hugo)
          Veranstaltungsdatenbank Vdb 0.1