anoniem Geplaatst: 20 januari 2003 Delen Geplaatst: 20 januari 2003 >PHP 4.2.3< ik heb een gastenboek die niet goed werkt.. hij schrijft het na het posten wel naar gastenboek.txt maar laad een error zien op het scherm zodra je dan weer naar het gastenboek word doorgelinkt; [quote:bad200432e]Warning: Cannot add header information - headers already sent by (output started at c:\phpdev\www\Layout\Includes\Gastenboek.inc:6) in c:\phpdev\www\files\gastenboek\gastenboek_overzicht.php on line 14[/quote:bad200432e] gastenboek_overzicht.php; [quote:bad200432e]<?php include("../../Layout/Includes/Gastenboek.inc") ?> <? $amount=15; if ($_GET['action']=='write') { $file=fopen('gastenboek.txt','a'); $message=str_replace("\r",'',$message); $message=str_replace("\n",'{{{',$_GET['message']); fwrite($file,$_GET['name'].'|||'.$_GET['email'].'|||'.date('d-m-Y H:i:s').'|||'.$_GET['url'].'|||'.$message."\n"); fclose($file); header('location: gastenboek_overzicht.php?action=read&start=0'); } $start=(isset($_GET['start'])?$_GET['start']:0); $gastenboek=Array(); $gastenboek=file('gastenboek.txt'); ?> <HTML><HEAD> <center> <SCRIPT language="JavaScript"> function validate(form) { if (form.name.value=="") { alert("Vul je naam in"); return false; } else if (form.message.value=="") { alert("Vul je bericht in"); return false; } } </SCRIPT> </HEAD> </center> <BODY onLoad="//SUR()"> <P> <TABLE width="100%" cellspacing="0" cellpadding="0"> <TR> <TD height="19" class="tittd"><div align="center"><a href="gastenboek_invul.php" target="_parent">Schrijf een bericht in het gastenboek</a></div></TD> </TR> </TABLE> <TABLE width="100%" cellspacing="0" cellpadding="0"> <TR> <TD class="conttd"> <div align="center">Berichten <? echo $start+1; ?> tot en met <? echo min($start+$amount,sizeof($gastenboek)); ?>.</div> <HR align="center"> <div align="center"> <TABLE width="100%"> <? $gastenboek=array_reverse($gastenboek); for ($i=$start;$i<$start+$amount && $i<sizeof($gastenboek);$i++) { list($name,$email,$date,$url,$message)=explode('|||',$gastenboek[$i]); $message=str_replace('{{{',"\n",$message); echo '<TR><TD><B>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD align="center"><B><A href="'.$url.'" target="_blank">'.$url.'</B></TD><TD align="right"><B>'.$date.'</B></TD></TR>'."\n"; echo '<TR><TD colspan="3"><SPAN class="SUR">'.str_replace("\n",'<BR>',htmlspecialchars($message)).'</SPAN></TD></TR>'."\n"; echo '<TR><TD colspan="3"><HR></TD></TR>'."\n"; } ?> </TABLE> <?php if ($start>0) echo '<A href="gastenboek_overzicht.php?start='.max(0,$start-$amount).'"><<<</A> '; if ($start+$amount<sizeof($gastenboek)) echo ' <A href="gastenboek_overzicht.php?start='.($start+$amount).'">>>></A>'; ?> </div></TD> </TR> </TABLE> <P> <TABLE width="100%" cellspacing="0" cellpadding="0"> <TR> <TD class="tittd"><div align="center"></div></TD> </TR> </TABLE> </BODY> </HTML>[/quote:bad200432e] gastenboek_invul.php; [quote:bad200432e] <?php include("../../Layout/Includes/Gastenboek.inc") ?> <? $amount=15; if ($_GET['action']=='write') { $file=fopen('gastenboek.txt','a'); $message=str_replace("\r",'',$message); $message=str_replace("\n",'{{{',$_GET['message']); fwrite($file,$_GET['name'].'|||'.$_GET['email'].'|||'.date('d-m-Y H:i:s').'|||'.$_GET['url'].'|||'.$message."\n"); fclose($file); header('location: gastenboek_overzicht.php?action=read&start=0'); } $start=(isset($_GET['start'])?$_GET['start']:0); $gastenboek=Array(); $gastenboek=file('gastenboek.txt'); ?> <HTML> <HEAD> <body link="#000000" vlink="#000000" alink="#000000" text="#000000" bgcolor="CAD1D9"> <center> <SCRIPT language="JavaScript"> function validate(form) { if (form.name.value=="") { alert("Vul je naam in"); return false; } else if (form.message.value=="") { alert("Vul je bericht in"); return false; } } </SCRIPT> </HEAD> </center> <BODY onLoad="//SUR()"> <P> <TABLE width="100%" "cellspacing="0" cellpadding="0"> <TR> <TD class="tittd"><div align="center">Invullen gastenboek</div></TD> </TR> </TABLE> <P> <TABLE width="100%" cellspacing="0" cellpadding="0"> <TR> <TD class="tittd"><div align="center"></div></TD> </TR> </TABLE> <TABLE width="100%" cellspacing="0" cellpadding="0"> <TR> <TD class="conttd"> <FORM action="gastenboek_overzicht.php" method="GET" onSubmit="return validate(this);"> <div align="center"> <INPUT type="hidden" name="action" value="write"> <TABLE> <TR> <TD>Naam:</TD> <TD><INPUT type="text" name="name" size="30"></TD> </TR> <TR> <TD>E-Mail:</TD> <TD><INPUT type="text" name="email" size="30"> </TD> </TR> <TR> <TD>Homepage:</TD> <TD><INPUT type="text" name="url" size="30"> </TD> </TR> <TR> <TD height="129">Bericht:</TD> <TD><TEXTAREA name="message" cols="50" rows="5"></TEXTAREA></TD> </TR> </TABLE> <INPUT type="submit" value="Verstuur"> </div> </FORM></TD> </TR> </TABLE> </HTML> </table> </tr> </td> </table>[/quote:bad200432e] Quote Link naar reactie
anoniem Geplaatst: 20 januari 2003 Auteur Delen Geplaatst: 20 januari 2003 De foutmelding wordt veroorzaakt door het feit dat je al output naar de gebruiker hebt gestuurd op het moment dat je een header() wilt schrijven. Waar dat gebeurd staat netjes in de warning die je terugkrijgt (namelijk in de include file). De oplossing is dus om de include file een stukje naar onderen te plaatsen in het script, de output [url=http://www.php.net/manual/en/control-structures.php#control-structures.if]conditioneel[/url] te tonen of [url=http://www.php.net/manual/en/ref.outcontrol.php]buffering[/url] in te bouwen. Aan jouw de keuze. Quote Link naar reactie
anoniem Geplaatst: 20 januari 2003 Auteur Delen Geplaatst: 20 januari 2003 Daarnaast moet je nooit en te nimmer files die je include de extensie .inc geven, die worden vrijwel nooit door de php-parser verwerkt en zullen dus of te downloaden zijn als je ze aanroept, of als tekst weergegeven worden. Mag jij zelf raden wat je daar allemaal mee zou kunnen doen ;) Quote Link naar reactie
anoniem Geplaatst: 21 januari 2003 Auteur Delen Geplaatst: 21 januari 2003 jeuh! mag ik raden ????? en wat kan ik winnen? ;) :P Quote Link naar reactie
anoniem Geplaatst: 13 februari 2003 Auteur Delen Geplaatst: 13 februari 2003 Mag je wel *.inc.php? Quote Link naar reactie
anoniem Geplaatst: 13 februari 2003 Auteur Delen Geplaatst: 13 februari 2003 ja. t. Quote Link naar reactie
anoniem Geplaatst: 13 februari 2003 Auteur Delen Geplaatst: 13 februari 2003 Thnx Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen