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

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

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    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.

    Einen Kommentar schreiben:


  • ByStones
    antwortet
    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...

    Einen Kommentar schreiben:


  • Tviskjola
    antwortet
    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.

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


  • ByStones
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X