vraagje over: "Warning: Cannot modify header information"

Status
Niet open voor verdere reacties.

Kees Koelkast

Nieuwe gebruiker
Lid geworden
13 nov 2006
Berichten
4
Hoi, vraagje van een beginneling...

Ik heb een script ergens vandaan voor simpele shoutbox en op zich werkt het wel, alleen staat er op de pagina de volgende foutmelding:

Warning: Cannot modify header information...

Wat moet ik doen om dat weg te krijgen?

PHP:
$datfile = "shout.txt";
$MAX_LENGTH = 51; //Zet hierhoe lang de berichten maximaal mogen zijn (Doe deze altijd 1 meer als in de input form op de normale pagina, anders kan hij errors aangeven als je dus 50 tekens hebt.
$NUM_COMMENTS = 20; //Zet hier de hoeveelheid berichten hij maximaal mag weergeven.
if (!$name)
{ $name = "pollo"; } //Als je geen naam invoert, verschijnt je IP als naam.
else $name .= ":";

$shout = preg_replace("/</","&lt;",$shout);
$shout = preg_replace("/>/","&gt;",$shout); 

$comfile = file($datfile);
if ($shout != "") {
if (strlen($shout) < $MAX_LENGTH) {
$fd = fopen ($datfile, "w");
$shout = stripslashes($shout);
$date_time = date('d-m-Y/H:i:s'); //Even simpele timestamp invoeren.
fwrite ($fd, "<div style='overflow:hidden'>[$date_time]
<b><i>$name</i></b>
$shout</div>\n");
for ($i = 0; $i < $NUM_COMMENTS; $i++) {
fwrite ($fd, $comfile[$i]);
}
}
fclose($fd);
}
Header("Location: $HTTP_REFERER");
 
Hoi, vraagje van een beginneling...

Ik heb een script ergens vandaan voor simpele shoutbox en op zich werkt het wel, alleen staat er op de pagina de volgende foutmelding:

Warning: Cannot modify header information...

Wat moet ik doen om dat weg te krijgen?

PHP:
$datfile = "shout.txt";
$MAX_LENGTH = 51; //Zet hierhoe lang de berichten maximaal mogen zijn (Doe deze altijd 1 meer als in de input form op de normale pagina, anders kan hij errors aangeven als je dus 50 tekens hebt.
$NUM_COMMENTS = 20; //Zet hier de hoeveelheid berichten hij maximaal mag weergeven.
if (!$name)
{ $name = "pollo"; } //Als je geen naam invoert, verschijnt je IP als naam.
else $name .= ":";

$shout = preg_replace("/</","&lt;",$shout);
$shout = preg_replace("/>/","&gt;",$shout); 

$comfile = file($datfile);
if ($shout != "") {
if (strlen($shout) < $MAX_LENGTH) {
$fd = fopen ($datfile, "w");
$shout = stripslashes($shout);
$date_time = date('d-m-Y/H:i:s'); //Even simpele timestamp invoeren.
fwrite ($fd, "<div style='overflow:hidden'>[$date_time]
<b><i>$name</i></b>
$shout</div>\n");
for ($i = 0; $i < $NUM_COMMENTS; $i++) {
fwrite ($fd, $comfile[$i]);
}
}
fclose($fd);
}
Header("Location: $HTTP_REFERER");

Ik denk dat deze script niet compleet is, als ik jou was zal ik maar gewoon op google zoeken "ad-free shoutbox" dan komen er zoekresultaten met reclamevrije shoutboxe's.
 
probeer het scripje nu eens:

PHP:
$datfile = "shout.txt";
$MAX_LENGTH = 51; //Zet hierhoe lang de berichten maximaal mogen zijn (Doe deze altijd 1 meer als in de input form op de normale pagina, anders kan hij errors aangeven als je dus 50 tekens hebt.
$NUM_COMMENTS = 20; //Zet hier de hoeveelheid berichten hij maximaal mag weergeven.
if (!$name)
{ $name = "pollo"; } //Als je geen naam invoert, verschijnt je IP als naam.
else $name .= ":";

$shout = preg_replace("/</","&lt;",$shout);
$shout = preg_replace("/>/","&gt;",$shout); 

$comfile = file($datfile);
if ($shout != "") {
if (strlen($shout) < $MAX_LENGTH) {
$fd = fopen ($datfile, "w");
$shout = stripslashes($shout);
$date_time = date('d-m-Y/H:i:s'); //Even simpele timestamp invoeren.
fwrite ($fd, "<div style='overflow:hidden'>[$date_time]
<b><i>$name</i></b>
$shout</div>\n");
for ($i = 0; $i < $NUM_COMMENTS; $i++) {
fwrite ($fd, $comfile[$i]);
}
}
fclose($fd);
}
Header("Location: $_SERVER['HTTP_REFERER']");
 
Probeer het ff zonder "Header("Location: $_SERVER['HTTP_REFERER']");". En kijk of er dan wat in het scherm komt.. (misschien error ?)
 
dat had ik nou net aangepast om dat de andere versie voor PHP3 was en hij waarschijnlijk 4.4 of hoger gebruikt.:eek:
 
Laatst bewerkt door een moderator:
aap, dat had ik nou net aangepast om dat de andere versie voor PHP3 was en hij waarschijnlijk 4.4 of hoger gebruikt.:eek:

dat zeg ik helemaal niet.. ik zeg niet om dat te veranderen maar om dat weg te halen om te kijken of ie het dan wel doet

Maar als ik hem was zou ik eerst jou oplossing proberen jah ;) maar als ie het dan nog steeds niet doet kan ie proberen als ie het zonder die regel het doet.
 
Laatst bewerkt door een moderator:
Bedankt voor de reacties allemaal.

Met het veranderde regeltje van compudoc kreeg ik helemaal een foutmelding, maar na het weghalen van de regel (kleinico's idee) is inderdaad ook de melding verdwenen.

Volgens mij werkt het nu goed!

Dank voor de hulp!!
 
ja maar dan gaat hij niet meer automatisch naar de pagina waar de gebruiker is geweest voordat hij op de contact pagina kwam.

misschien kan je dit gebruiken: header("Location: http://www.helpmij.nl/");

als het is opgelost is het goed:D
 
Ik neem aan dat er voor je script al wat html code staat (of php print of echo statements), als dit door de webserver (of php) al verzonden is, is de HTTP reply header al verzonden en kan deze niet meer veranderd worden, vandaar de warning.
Je kan 2 dingen doen:
1 zorgen dat die header() statement eerder gegeven wordt
2 output buffering, dat doe je met ob_start(), ob_flush() en ob_close() meen ik
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan