php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.07.2010, 20:51  
Neuer Benutzer
 
Registriert seit: 15.07.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Tviskjola befindet sich auf einem aufstrebenden Ast
Standard [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
Tviskjola ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.07.2010, 20:54  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 626
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard

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;"
ByStones ist offline  
Alt 15.07.2010, 20:59  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
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.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 15.07.2010, 21:04  
Neuer Benutzer
 
Registriert seit: 15.07.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Tviskjola befindet sich auf einem aufstrebenden Ast
Standard Versteckte Leerzeichen

Hallo,

schonmal danke für deine schnelle Antwort.

Zitat:
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.
Tviskjola ist offline  
Alt 15.07.2010, 21:06  
Erfahrener Benutzer
 
Registriert seit: 23.03.2010
Beiträge: 626
PHP-Kenntnisse:
Anfänger
ByStones befindet sich auf einem aufstrebenden Ast
Standard

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;"
ByStones ist offline  
Alt 15.07.2010, 21:15  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
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.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 15.07.2010, 21:22  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Weiterer „beliebter“ Fehler - Script als UTF-8 mit BOM gespeichert ...?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Warning: Cannot modify header information - headers already sent by Crazynet PHP Tipps 2010 5 28.03.2010 10:42
[Erledigt] Cannot modify header information - headers already sent by Lachesis PHP Tipps 2009 10 30.04.2009 23:16
Cannot modify header information - headers already sent by trettin PHP Tipps 2009 15 22.04.2009 19:50
Warning: Cannot modify header information - headers already sent by (output started Knuff PHP Tipps 2008 1 03.12.2008 18:28
Cannot modify header information PHP-Fortgeschrittene 13 24.10.2006 20:01
Cannot modify header information...??? imported_FlasH PHP Tipps 2007 33 12.11.2005 11:58
Warning: Cannot modify header information - headers already LP PHP Tipps 2005-2 2 12.09.2005 19:28
Problem: Cannot modify header information Alpha Centauri PHP Tipps 2005 11 25.04.2005 13:05
cannot modify header information!?!?! Fraylman PHP Tipps 2005 14 18.03.2005 18:14
Warning: Cannot modify header information ... PHP Tipps 2005 24 15.02.2005 11:07
admincontrolpanel: Cannot modify header information ? phpfortgeschrittener PHP Tipps 2004 2 23.08.2004 19:17
Cannot modify header information - headers already sent by PHP Tipps 2004 2 25.07.2004 19:40
Warning: Cannot modify header information PHP Tipps 2004 8 22.07.2004 00:50
Warning: Cannot modify header information.... PHP Tipps 2004 4 18.06.2004 01:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php singleton getinstance skript bricht ab, \cannot modify header information\ header location php, ubuntu warning cannot modify header information headers already sent in redirect php, php header location self, header location cannot, cannot modify header location, \warning: cannot modify header information\ php redirect, php redirect cannot modify header information - headers already sent by, cannot modify header information - location, http output verhindert redirekt, redirekt soll nichts in output geschrieben, redirect cannot modify header information - headers already sent, header(\'location: modify, php header cannot modify header, header location klasse, http://www.php.de/php-einsteiger/69770-erledigt-cannot-modify-header-information-header-location-url.html, headerinfo.location, ajax header cannot modify header information, warning: cannot modify header information header location, modify headers location:

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum