WinFuture-Forum.de: Warning: Cannot Modify Header Information - Headers Already Sent By - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Warning: Cannot Modify Header Information - Headers Already Sent By Cookie Problem


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 08. Mai 2008 - 20:13

Hallo Leute,
ich bastel grade an meiner Page.
Ich habe dort viel included. Doch in einem Include springt mir immer diese Fehlermeldunge entgegen:

Warning: Cannot modify header information - headers already sent by [...]

In diesem Script setzte ich einen Cookie:
<?php
if (isset($_POST["ergebnis"])) {
	setcookie("abgestimmt","ja",time()+60*60*24*30);
}
[...]



Ich habe schon etwas über ob_start() gelesen nur ich versteht es nicht.

Wie kann man denn den Fehler :
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web120194/html/snips/time_start.php:1) in /var/www/web120194/html/snips/umfrage/umfrage.php on line 5


vermeiden?

Philipp
0

Anzeige



#2 Mitglied ist offline   nobody is perfect 

  • Gruppe: VIP Mitglieder
  • Beiträge: 5.724
  • Beigetreten: 13. Oktober 06
  • Reputation: 315
  • Geschlecht:Männlich
  • Wohnort:Köln

geschrieben 08. Mai 2008 - 20:19

schau mal hier rein




Hier klicken!
0

#3 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 08. Mai 2008 - 20:53

Auf diese Seite bin ich bei meiner Suche auch gestoßen und hat mich kein Stück weitergebracht!!
0

#4 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 08. Mai 2008 - 22:13

Es hat ja was mit den cookies zu tuhen. Er sagt in dieser Line steckt der Fehler:

setcookie("abgestimmt","ja",time()+60*60*24*30);

Ich habe nachgeschaut, es wird kein cookie erstellt.
Kann mir jemand helfen den Fehler zu vermeiden?
0

#5 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 09. Mai 2008 - 00:03

Nachdem der Header gesendet wurde, also nachdem du das erste mal den Ausgabetext an den Client übermittelt hast kannst du den Header nicht mehr modifizieren oder Cookies setzen. Also zuerst header() und setcookie() bevor du das erste mal echo(), print(), print_f(), die() oder sonst was verwendest.
Mit ob_start() kannst du das vermeiden, da wenn du was ausgibst der Inhalt nicht unmittelbar an den Client übermittelt wird sondern zuerst in einen Ausgabepuffer geschrieben wird. Der Inhalt des Puffers kann entweder in einen String ausgelesen werden, oder mit ob_end_flush() an den Client gesenet werden. Nach ob_end_flush() kannst du dann hald wieder keinen Cookies mehr setzen.
0

#6 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Mai 2008 - 13:12

Gut das habe ich soweit verstanden. Nur wie baue ich dass in mein Code ein!

Was komt zwischen die Klammern von ob_start() ?

Muss ich einfach nur den Code mit dem cookie mit ob_start() und ob_end_flush "umbauen" und was gehört in die Klammer?

Brauch noch ein wenig Hilfe!

Danke,
genießt das Wetter
Toaster
0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Mai 2008 - 13:26

So habe ich es nun gemacht; nach diesem Beispiel:

ob_start();
if (isset($_POST["ergebnis"])) {
setcookie("abgestimmt","ja",time()+60*60*24*30);
}
ob_end_flush();

Nur leider funktioniert es nun noch nicht!
Whitspaces vor "<?php" und "?>" gibt es nicht!

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 09. Mai 2008 - 13:27

0

#8 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 09. Mai 2008 - 13:33

Demnächst bitte den Editieren Button benutzen, danke :wink:

Siehst du auf der Seite, wenn du sie ausführst zufällig ein umgedrehtes Fragezeigen?
Stichwort: BOM.
Wenn du die Datei in UTF-8 abgespeichert hast, musst du sie als UTF-8 ohne BOM abspeichern, geht mit ordentlichen Editoren wie notepad++.
0

#9 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Mai 2008 - 13:46

Das war es leider auch nicht! Habe es ausprobiert!

Woran kann es denn nun noch liegen? Nützt es was wenn ich den include vor meiner Datei mit dem Fehler entferne?
0

#10 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 09. Mai 2008 - 13:55

/var/www/web120194/html/snips/time_start.php:1

Auch mit der Datei? Weil hier ja die Ausgabe gestartet wurde.
0

#11 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Mai 2008 - 15:07

ja ich habe alle Includes überprüft bzw. diese hier habe ich mal entfernt. Muss ich denn in allen dann ob_start machen oder nur in die welche den Fehler verursacht?
0

#12 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 09. Mai 2008 - 15:52

Im Idealfall ob_start ganz weit oben (vor der ersten Ausgabe hald) und end_flush ganz am Ende des Scripts.

Dieser Beitrag wurde von [Elite-|-Killer] bearbeitet: 09. Mai 2008 - 15:54

0

#13 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Mai 2008 - 16:44

Soll ich dass dann in dem Script machen oder da wo es included wird?
0

#14 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 09. Mai 2008 - 16:52

Auf das ganze Script bezogen. Include heisst ja letztendlich nichts anderes als, dass der Code der in einer anderen Datei lieght eingefügt wird. Hast du vor der include-Anweisung schon was ausgegeben bringt es dir dann nämlich nichts, wenn du den Ausgabepuffer erst innerhalb der include-Datei startest.
0

#15 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Mai 2008 - 16:54

Super! Ich hab nunmal stumpf das geamcht was [Elite-|-Killer] gesagt hat!

Habe ob_start() in die index.php vor dem ersten include geschrieben.
Dann habe ich ob_end_flush() in die includete Datei ganz ans Ende geschrieben!
Cookie wurde einwandfrei erstellt!

Wie schon so oft, DANKE [Elite-|-Killer]! Du hast mir schon wirklich viel geholfen. :wink:

Wünsche noch eine schöne Restsonne! :)
Toasterfraktion
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0