eBola.cz kvalitní webhosting

podpora a nápověda

  • Podpora a nápověda
  • Partnerský program
  • Webmail
  • Administrace hostingu

Neváhejte se nás zeptat

Kontrolní kód:

Chyba "Cannot send session cache limiter - headers already sent"


Pokud v chybovém souboru /logs/error.log objevíte chybová hlášení obsahující text ....Cannot send session cookie - headers already sent by (output started at ..... jedná se pravděpodobně o problém úpravy zdrojových kódů PHP pomocí editoru Notepad na Windows či chybně nastaveného editoru PSPAD.

Vestavěný základní textový editor Notepad a nevhodně nastavený editor PSPAD ve Windows obsahuje nepříjemnou vlastnost, která při editaci / úpravě souborů v kódování UTF-8 může znefunkčnit www stránky, resp. PHP kód.

Notepad při opravě souboru s kódováním UTF-8 vloží na začátek souboru neviditelné 3 znaky, které jsou poté odeslány prohlížeči jako html kód. Pokud se jedná například o konfigurační soubor aplikace či jiný soubor vkládaný direktivou include, include_once, require či require_once ještě před odesláním header či cookies informací, dojde k neodeslání těchto informací do prohlížeče. Tím přestávají být funkční části aplikace jako přihlašování uživatelů, registrace uživatelů a pod.

Náprava je možná například s využitím volně šiřitelného textového editoru PSPAD (http://www.pspad.com/cz/). U tohoto editoru je možné vkládání neviditelného znaku vypnout. Vypnutí se provede v nastavení editoru v menu Nastavení -> Nastavení programu -> Program 2 -> vypnout volbu Identifikační byty v kódování UTF8.

Jakmile je vypnuto v editoru PSPAD vkládání neviditelného znaku otevřete opět všechny soubory, znovu uložte a nahrajte zpět na FTP. Tímto jednoduchým trikem se formát souboru opraví zpět na původní správný bez vložených nežádoucích znaků editorem Notepad či chybně nastaveným PSPADem.


Podobné příspěvky