header, ob_start und ob_end_flush

Eaden

Mitglied
Moin
Ich weiss das es zu diesem Thema bereits einige Kommentar gibt abermir konnte damit noch nicht geholfen werden. Ich möchte auf einer include- Seite irgendwo mittendrin einen header senden um einen automaischen Link hinzubekommen(header("Location:...")). Ich weiss das dieses eigentlich am Anfang geschehen muss, bei mir geht das aber leider nich anders. Aber dafür soll es ja ob_start() und ob_end_flush() geben. Daher habe diese Elemente an den Anfang und das Ende der Include-Seite geschrieben. Und auch auf der index.php , wo die Seite includet wird habe ich diese Elemente an Anfang und Ebnde eingebaut. Hilft aber alles nix.
Sagt mir immernoch:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/htdocs/evjugend-row.de/test/pflege/index.php:9)

Wie kann ich da weiterkommen?
 
ich krieg das einfach nich gebacken!

man muss doch einfach an das ende und den anfang das ob_start und end_flush... setzen oder?

aus der seite werde ich auch nich schlau

könnt ihr mir vielleicht mal eins nach dem anderen erklä#ren wie ich mitten im code nach iener abfrage einen automatischen link hinbekomme
 
Hier ein kleines Beispiel wie du es machen kannst:

PHP:
$weiterleiten = 0; 

# Puffert alle Ausgaben 
# außer solche, die von header() oder setcookie() geschickt wurden
ob_start();

# eine Ausgabe (sie wird gepuffert)
echo "test\n";

if ($weiterleiten == 1) {
  # hier erfolgt die Weiterleitung
  header("location: http://www.example.com");
}
# gibt Text aus
ob_end_flush();
die Weiterleitung funktioniert nicht, wenn vorher eine Ausgabe erfolgt ist.
 
selbst wenn ich deinen code so nehme, eine eigene seite dafür in der index.php include, und um zu testen die variable $weiterleiten auf 1 setze klappt das nich. muss ich in der index noch was ändern?
ich habe da na den anfangg ob_start() und an das ende ob_end_flush() gesetzt

fehlermeldung
Warning: Cannot modify header information - headers already sent by (output started at /home/www/htdocs/evjugend-row.de/test/pflege/index.php:9) in /home/www/htdocs/evjugend-row.de/test/pflege/ppast.php on line 13
 
Es ist super wichtig, dass es keine Ausgabe gegeben hat, bevor du die Weiterleitung
machst. Zur Ausgabe gehört auch HTML. Ansonsten funktioniert die Weiterleitung
mit PHP nicht.

Anhand deiner Fehlermeldung siehst du, wo die Ausgabe begonnen hat.
 
Zurück