SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 15.05.2006, 08:47   #1
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht

Header schon gesendet


Dass dieser Fehler auftritt, wenn schon Daten mit print() oder echo ausgegeben wurden, bevor header() ausgeführt wird, ist mir bekannt.

Wenn ich wie zB. bei einem Formmailer für die Danke-Seite header(location: xxxx) ausführe ist das kein Problem, wenn das Script ein eigenständiges HTML-Dokument erzeugt und in ein solches durch header() verzweigt wird.

Anders und problematisch wird es, wenn das Script in eine Seite inkludiert wird, da bereits mindestens <doctype> <html> <head> und dergleichen zum Output gelangten.

Eine Option ist, ein JavaScript mit document.location.href=xxx auszugeben. Aber ich möchte nicht von JavaScript abhängig sein.

Eine weitere Option wäre, im inkludierten Content-Bereich einen Iframe zu erstellen, der das Script / Formular zum Inhalt hat. Doch hier stören mich zusätzliche Scrollbars, die bei grösserem Inhalt unweigerlich auftreten würden.

Eine Kontrolle durch einen als Session-Variable oder Cookie gesetzten Switch scheidet leider auch aus: Wie bei header() ist kein vorangehender Output erlaubt.

Und nun endlich die Frage: (Wie) Lässt sich das lösen
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!
321 ist offline   Mit Zitat antworten


Alt 15.05.2006, 09:43   #2
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Moin,

wie wäre es mit ob_start()? Hat bei mir bisher immer Wunder gewirkt
Rizzo ist gerade online   Mit Zitat antworten
Alt 15.05.2006, 10:39   #3
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
Danke Dir
werde das nochmals durch lesen!

Bin schon mal drauf gestossen aber leider nihct recht klug geworden,
da die Beispiele alles mögliche nur nicht im Zusammenhang mit header() zeigen.

Ich fand aber auf einer andern Seite noch folgendes:
PHP-Code:
<?php
ob_start
();
echo 
"Hier wird ausgegeben !";
header("location: http://www.example.com/index.php");
// Korrekt, da ob_start verwendet wird
?>
Ist es dann richtig, wenn ich zB. so vorgehe:
PHP-Code:
<?php
ob_start
();
echo 
"Hier wird ausgegeben !";
if (
$umleiten) {
 
header("location: http://www.example.com/index.php");
 exit;
 }
// ohne Umleitung jetzt ausgeben!
$buffer ob_get_clean();
echo 
$buffer;
echo 
"weitere Ausgabe ...";
?>
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!
321 ist offline   Mit Zitat antworten
Alt 15.05.2006, 10:53   #4
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Na Du fragst mich Sachen... bin doch selbst noch Noob

So wie ich das gelesen habe, verwirft ob_get_clean() den Buffer ohne ihn auszugeben. Zum "manuellen" ausgeben ist die Funktion ob_end_flush() da. Oder falls Du den Buffer übernehmen (auslesen) willst, benutzt man etwas in der Art $buffer = ob_get_contents();
Ausser ob_start() habe ich das allerdings noch nie benutzt, weil die Ausgabe am Ende (nach abarbeiten) des Scripts automatisch geschieht und bisher gab es damit auch noch keine Probleme.
Rizzo ist gerade online   Mit Zitat antworten
Alt 15.05.2006, 12:26   #5
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
Na, dann nooben wir mal weiter

ob_get_clean gibt im Gegensatz zu ob_end_clean den Inhalt zurück.

Das wegen Ausgabe bei Script-Ende wusste ich nicht.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!
321 ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Header schon gesendet Header schon gesendet
« Mysql- Bei Zahl 0 vorne hinstellen | PHP: explode - trennzeichen in anführungszeichen ignorieren »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:16 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67