Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Cannot modify header information...header("Location: $url")

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Cannot modify header information...header("Location: $url")

    Hallo zusammen,

    erstmal ein Danke an jeden der sich die Zeit nimmt sich mit meiner Fragestellung auseinanderzusetzen.

    Folgendes Problem habe ich gerade:

    Ich habe eine Klasse nach Singleton-Entwurfsmuster erstellt. Die Klasse soll einen redirect auf sich selbst ausführen. Leider bekomme ich: Cannot modify header information - headers already sent by...

    Kurz zum Hintergrund:
    Die Klasse soll mehrere HTTP-Redirects zu Servern ausführen die sich dann an der Klasse zurückmelden. Der Self-Redirect ist nur zu Testzwecken.

    Anbei mein reduzierter Beispiel-Code:

    Klasse: Singleton{}
    PHP-Code:
    <?php
    class Singleton {
           private static 
    $instance NULL;
           private function 
    __construct() {}
     
           public static function 
    getInstance() {
            if (
    self::$instance === NULL) {
                
    self::$instance = new self;
               }
               return 
    self::$instance;
           }
       
        private function 
    __clone() {}

        function 
    redirect() {
            
    header("Location: Singleton.php/?done=redirect");
        }
    }
    ?>
    Klasse Singleton{} wird wie folgt angesprochen:

    PHP-Code:
    <?php
    include_once('Singleton.php');
    $singleton Singleton::getInstance();
    $singleton->redirect();
    ?>
    Ich kann nicht nachvollziehen von wo in diesem Beispiel ein HTTP Output kommen soll, der verhindert dass ich den Redirect ausführen darf.

    Ich hoffe mir kann da jemand weiterhelfen. Habt vielen Dank für die Mühen.

    LG,
    Tviskjola


  • #2
    Irgendwo hast du schon eine Ausgabe von dem header()-Befehl gemacht, wo sagt dir die Fehlermeldung. Leerzeichen und Zeilenumbrüche zählen auch als Ausgabe.

    Edit: Nach header('Location: ...') immer exit verwenden.
    Signatur:
    PHP-Code:
    $s '0048656c6c6f20576f726c64';
    while(
    $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

    Kommentar


    • #3
      Zitat von Tviskjola Beitrag anzeigen
      Ich kann nicht nachvollziehen von wo in diesem Beispiel ein HTTP Output kommen soll
      Dann schau in die Meldung - die gibt sowohl Script als auch Zeilennummer ganz explizit an.

      Kommentar


      • #4
        Versteckte Leerzeichen

        Hallo,

        schonmal danke für deine schnelle Antwort.

        Zitat von ByStones Beitrag anzeigen
        Irgendwo hast du schon eine Ausgabe von dem header()-Befehl gemacht, wo sagt dir die Fehlermeldung. Leerzeichen und Zeilenumbrüche zählen auch als Ausgabe.
        Hmm, die üblichen Fauxpas kenn' ich eigentlich. Das ganze Script ist auf Anfang getrimmt. Keine Leerzeichen vor oder hinter dem <?php ?> tags.
        Und im Code wird auch kein HTTP Output verursacht. Weiteren Code gibt es auch nicht der Output verursachen könnte.

        Na ja...ich such fleissig weiter nach versteckten Leerzeichen. Schonmal vielen Dank.

        Kommentar


        • #5
          Bei dem Fehler steht hinten so was in der Art: Output already started in C:\xampp\htdocs\script.php in Line XX.

          An der stelle würde ich mal nachsehen...
          Signatur:
          PHP-Code:
          $s '0048656c6c6f20576f726c64';
          while(
          $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

          Kommentar


          • #6
            Ich habe eine Klasse nach Singleton-Entwurfsmuster erstellt. Die Klasse soll einen redirect auf sich selbst ausführen.
            Bitte korrekt bleiben. Eine Klasse leitet nicht um und auf sie kann auch nicht weitergeleitet werden. Ziel von HTTP-Redirects sind allenfalls Scripte bzw. Web-Ressourcen.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Weiterer „beliebter“ Fehler - Script als UTF-8 mit BOM gespeichert ...?

              Kommentar

              Lädt...
              X