Co dělat, když mám ve skriptu chybu?

Podpora > Programování a databáze > Co dělat, když mám ve skriptu chybu?
PHP

Zobrazovaní PHP chyb si můžete zapnout v administraci v sekci nastavení PHP a MySQL. Po zapnutí se vypisují chybové hlášky přímo do generované stránky (přesněji: zobrazovány jsou chybové hlášky a varování), takže chyby si všimnete hned, jak se objeví.

Nejčastěji se setkáváme s těmito chybovými hláškami:

  • Warning: Cannot modify header information - headers already sent -- Použití funkce header(), setcookie() atp. předcházel výstup kódu stránky. Protokol HTTP vyžaduje, aby byly všechny hlavičky odeslány před prvním výstupem. Součástí chybové hlášky je, v kterém souboru a na kterém řádku výstup začal.
  • Warning: access to [cesta] from [cesta] denied in, popř. open_basedir restriction in effect. File(..) is not within the allowed path. -- pokoušíte se přistupovat k souboru, který Vám nepatří.
  • Warning: file_exists() [function.file-exists]: Unable to access ... -- přistupujete k souboru, který neexistuje (a proto to varování), hlášení můžete skrýt uvedením zavináče při volání funkce: @file_exists(parametr)
  • Warning: setlocale() [function.setlocale]: Passing locale category name as string is deprecated. Use the LC_* -constants instead. in [soubor] on [cislo radku] -- od verze 4.3.0 PHP vypisuje toto varování při volání funkce setlocale() s řetězcem jako prvním parametrem. Jedno (horší) řešení je v zakázání chybových hlášení. Lepší řešení (to, které je obsaženo přímo v té hlášce) je umazání uvozovek, resp. apostrofů kolem prvního parametru tak, aby předávaný parametr byl konstanta LC_*.