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.

Nastavení kódování v Notepad2

:!: 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.