geplaatst door: MartiBo
Hallo,

Ik ben met een gastenboek bezig en krijg de volgende foutmelding:
session_start(): Cannot send session cache limiter - headers already sent

Wie kan mij helpen deze (hopelijk laatste foutmelding) eruit te krijgen?

Het gastenboek is te vinden op: http://www.mvanderhorst.nl/gastenboek/gbook.php.
De verwijzing naar het script is de regels van session_start();


if($a=='sign' || $a=='add') {
   session_name('GBOOK');

if ($settings['autosubmit'] && $a!='add')

{
   $_SESSION['secnum']=rand(10000,99999);
   $_SESSION['checksum']=crypt($_SESSION['secnum'],$settings['filter_sum']);
}
session_start();
   gbook_session_regenerate_id();

   $myfield['name']=str_replace(array('.','/'),'',crypt('name',$settings['filter_sum']));
   $myfield['cmnt']=str_replace(array('.','/'),'',crypt('comments',$settings['filter_sum']));
$myfield['bait']=str_replace(array('.','/'),'',crypt('bait',$settings['filter_sum']));
}

(Bewerkt door MartiBo om 11:33, 22-04-2007)

Macbook Pro i7, Apple Display. http:// idforyou.nl
session_start(): Cannot send session cache limiter - headers
22 april 2007 - 11:43    reactie #1
geplaatst door: Thomas
Waarschijnlijk heb je door een bug die ervoor zorgt dat je al output stuurt voor dat de session header wordt gestuurd. Misschien even display_errors naar all zetten in je php.ini zodat je deze fout kan zien.

Wat ik hier uitkraam is puur mijn persoonlijke mening.
session_start(): Cannot send session cache limiter - headers
23 april 2007 - 08:53    reactie #2
geplaatst door: mvdg
Die fout komt inderdaad als er al iets naar de browser is gestuurd voordat je je 'session_start'-commando geeft. Je moet dus zorgen dat de PHP code waar dit in voorkomt aan het begin van je script staat en dat er ook geen spatie voor de <?php begin tag staat of iets dergelijks, en natuurlijk ook geen 'echo'-commandos of andere zaken die tekst naar buiten sturen.
Mitch Design : websites en interactieve toepassingen : http://www.mitchdesign.nl
session_start(): Cannot send session cache limiter - headers
23 april 2007 - 14:18    reactie #3
geplaatst door: Slagroom
Zet session_start voor de zekerheid direct na de eerste < ?

(Bewerkt door Slagroom om 14:18, 23-04-2007)

session_start(): Cannot send session cache limiter - headers
23 april 2007 - 14:40    reactie #4
geplaatst door: mvdg
Maar dat werkt dus niet als je daarvóór al een stuk HTML hebt staan.
Is dat het geval? Dan kun je het beste helemaal aan het begin van je
document meteen een regeltje plaatsen met
<?php session_start(); ?>
dan is dat vast gebeurd en kan de fout niet meer optreden.
Mitch Design : websites en interactieve toepassingen : http://www.mitchdesign.nl
session_start(): Cannot send session cache limiter - headers
23 april 2007 - 15:49    reactie #5
geplaatst door: Slagroom
Je hebt gelijk mvdg. Ik werk normaal nooit met (veel) HTML in mijn PHP code, macht der gewoonte, sorry.

Dus voor alle code, bovenaan je document

session_start(): Cannot send session cache limiter - headers
23 april 2007 - 16:30    reactie #6
geplaatst door: mvdg
@Slagroom: Ik ook liever niet, het is fijner om de boel gescheiden te houden.
Echter ik kan me voorstellen dat de vraagsteller een script ergens heeft gevonden,
en dat script in zijn bestaande pagina plakt. In zo'n geval zal hij waarschijnlijk wel
code boven en onder de PHP code hebben staan.. vandaar mijn suggestie.
:-)
Mitch Design : websites en interactieve toepassingen : http://www.mitchdesign.nl