ich peil die Fehlermeldung nicht...

blubber

Erfahrenes Mitglied
Hi,

ich hab folgendes Problem:
Ich hab auch eine (glaub ältere Version) des vBulletin Boards. Auf meiner Site an der ich gerade arbeite, möchte ich es so ähnlich wie hier machen mit dem board, dass es eben in der Site mit drin ist, also ausemmrum die menüs, bilder etc, einfach wie hier :)

Soweit so gut, hab ich mir gedacht, kein Problem, ich füg einfach auf jeder Seite des Boards eine inxheader und inxfooter ein. Geht eigentlich auch, doch bekomm ich bei der index.php des Forums diese Fehlermeldung dazu:

Warning: Cannot add header information - headers already sent by (output started at ........\forum\index.php:2) in ......\forum\admin\functions.php on line 1530


Und in dieser Zeile, also 1530 steht folgendes:

setcookie($name, $value, $expire, $cookiepath, '', $secure);

das komische ist, sobald ich auf einen link im forum klicke, also zum beispiel "members" oder "suchen", ist die fehlermeldung weg. Es ist auch nicht so, dass die index.php garnet funktioniert...ich seh mein forum mit dem zeugs drumherum, doch zusätzlich ist eben die fehlermeldung da.

hat jmd eine idee?

bye
 
Hm nicht wirklich ne idee ... oder doch ?
Hm wird in der index seite des Boards session_start (); aufgerufen ? dann pack das mal auf die seite, die das borad includet mit drauf
Ansonsten bekomm ich diese art immer wenn ich eine session gestartet hab und dann per header location weiterleiten möchte ...

evtl hilft dir das ja

Grüße, Morph
 
...

Ich hab die Index.php durchsucht, aber da wird nirgends session_start aufgerufen. Danach hab ich alle Files des Forum durchsucht, aber komischerweise wird nirgends session_start ausgeführt. Doch eine Session ist ja vorhanden, wie man an diesem Forum hier ja auch sieht.

Doch wenn man nach "session" alleine sucht, findet man viel....sehr viel :)

doch mein Prob besteht immernoch ;(

bye
 
Sorry bin ich überfragt - wennde dich am besten an Reima und/oder TheVirus - die können dir sicherlich weiterhelfen!

Grüße, Morph
 
Das Problem besteht darin, dass das Board ein Cookie setzen will. Ein Cookie muss allerdings immer im HTTP-Header, also noch vor dem eigentlichen HTML-Quelltext, geschickt werden. Doch vor dem Aufruf der setcookie() kommt ja jetzt schon die Ausgabe deines Headers (nicht mit dem HTTP-Header verwechseln ;)). Lösen kannst du das Problem, indem du am Anfang jeder PHP-Datei die Funktion ob_start() aufrufst und am Ende ob_end_flush(). ob_start() bewirkt, dass alle Ausgaben in einen Zwischenspeicher gespeichert und nicht direkt an den Browser geschickt werden. Eine Ausnahme stellen dabei Header dar, diese werden nach wie vor direkt gesendet. ob_end_flush() gibt den Zwischenspeicher aus und beendet das ganze Buffering.
Hope that helpz :)


reima

[edit: mein Ruf eilt mir voraus :)]
 
hi reima,

Ich hab zwar nicht wirklich kapiert was du mir eklären wolltest, aber ich hab das mal probiert :) (jedoch ohne erfolg, gleich vorweg;( )

Hab ich das richtig verstanden, ich soll bei der functions.php dieses ob_start und ob_end_flush einbinden?

oder bei der index??

ich habs eigentlich bei beiden probiert, also meine index sieht so aus:

PHP:
<?php

include("inxheader.php");

...
eigentlicher php code
...

include("inxfooder.php");

?>

das hab ich dann mal so probiert:

PHP:
<?php

ob_start();
include("inxheader.php");

...
eigentlicher php code
...

include("inxfooder.php");
ob_end_flush();
?>

ging net, danach so:

PHP:
<?php


include("inxheader.php");
ob_start();

...
eigentlicher php code
...

ob_end_flush();
include("inxfooder.php");

?>

ging au net ;(

du sagtest, ich soll das auf JEDER php site einbinden, aber ich bekomm doch lediglich auf der index site des forum diese fehlermeldung.

bye
 
Mit alle meinte ich alle PHP-Files, bei denen der Fehler auftritt.
PHP:
<?php
ob_start();
include("inxheader.php");
[...]
include("inxfooder.php");
ob_end_flush();
?>
Das müsste eigentlich so funktionieren... wenn nicht, weiß ich auch nicht weiter.
 
hmm

@ reima: nuja, so hab ichs ja probiert, hat leider nicht funktioniert. trotzdem danke.

@TheVirus: in der index.php steht ja nirgeds "set_cookie", folge dessen kann ich den include auch nirgends dahinter setzten.

das komische ist, wenn ich mein forum aufruf, also direkt die index.php, dann kommt ja die fehlermeldung. wenn ich dann aber auf der seite zum beispiel ein link vom forum anklick, der dann zum beispiel so aussieht:

....index.php?

dann ist die fehlermeldung weg.
Dieses Forum hier hat doch bestimmt auch eine header und footer includet, damit das ganze zeugs ausenrum erscheint. Daselbe Board ist es auch, wie ist das denn realisiert?

bye
 
Da is mit sicherheit irgendwo ein include für functions.php. Diese include muss vor deinem include stehen dann klappt das auch. Das meinte ich mit vor dem set_cookie schreiben.

So Long
TheVirus
 
Zurück