Nelze odeslat session cookie
Upravil jsem konfigurační soubor a teď se mi zobrazují chyby jako:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/codecrai/public_html/wiki/conf/dokuwiki.php:81) in /home/codecrai/public_html/wiki/inc/common.php on line 22
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/codecrai/public_html/wiki/conf/dokuwiki.php:81) in /home/codecrai/public_html/wiki/inc/common.php on line 22
Warning: Cannot modify header information - headers already sent by (output started at /home/codecrai/public_html/wiki/conf/dokuwiki.php:81) in /home/codecrai/public_html/wiki/doku.php on line 123
K této chybě dochází, když váš editor přidá nový řádek za uzavírací PHP značku ?>. Tím se spustí výstup a PHP už nemůže odeslat cookies ani jiné hlavičky. Řešením je odstranit tento nový řádek nebo celou uzavírací značku. Ujistěte se také, že před otevírací značkou <?php není žádná mezera nebo prázdný znak.
Podobný problém může nastat, pokud se v konfiguračním souboru použijí ne-ASCII znaky a editor soubor uloží v UTF-8 s BOM. Některé programy ve Windows (např. Poznámkový blok) to dělají automaticky. Řešením je použít editor, který BOM neukládá nebo umožňuje jeho vypnutí. Freeware program Notepad2 to zvládá správně při nastavení
Encoding → UTF-8.
Tato chyba se může zobrazit i tehdy, když se nejprve objeví jiná chyba a PHP začne výstup tím, že ji vypíše. Pokud se před hláškou „cannot send session cookie“ objeví jiná chyba, je potřeba nejdřív opravit tu.
Co se týče uzavírací značky, doporučuje se dodržet tento standard.
Pro nalezení problémového souboru může pomoci skript tips:findbadphp.php.
