Autor Zpráva
Jiří Bednář
Profil
Ahoj,
potřeboval bych věděk jakým způsobem zaznamenat jakýkoli error v PHP a následně ho zapsat do souboru nebo SQL.
AM_
Profil
nejjednodušší je v php.ini zapnout log_errors = on, případně k tomu můžeš vypnout display_errors = off a tak se uživateli nebudou zobrazovat chyby ve stránce, což má i bezpečnostní výhody, protože z chybových hlášek se často dají vyčíst informace, které mohou být útočníkovi nápomocné při napadení webu a běžnému uživateli je informace o tom, která funkce selhala na kterém řádku, zcela bezcenná.
Jiří Bednář
Profil
AM_
To ale není odpověď na moji otázku a to: Jak error (např. parse error) zanamenat do databeze nebo do souboru.

Proste a jednodues zapsat do souboru vse co je v tom erroru.

Př:

Parse error: syntax error, unexpected T_VARIABLE in /root/index.php on line 127
ninja
Profil
Jiří Bednář: a jak chcete zaznamen chybu do databaze, kdyz chyba vznikne treba prave pri pripojovani k databazi?
AM_
Profil
Jiří Bednář
Ano, přesně tohle to udělá, když zapneš log_errors, zapíše to všechny chyby do log souboru (někde dál se php.ini dá nastavit, do kterého, to už si najdeš). Jiná cesta ani není, můžeš si napsat error handler, ale ten ty nejkritičtější chyby stejně nezpracuje (E_ERROR a E_PARSE).
Jiří Bednář
Profil
ninja
Např. do souboru, odeslani emailem, je plno zpusobu.

AM_
Tak ze kdyz neupravim php.ini tak mam smulu.


Skoda, dik za pomoc.
AM_
Profil
Jiří Bednář
Pokud to máš na hostingu, můžeš se s nimi zkusit domluvit, k PHP.ini pochopitelně na dobře zabezpečených serverech přístup nemáš, protože se tam dá nastavit i spousta věcí, ke kterým mít přístup uživatel nemůže, ale když je požádáš o změnu jednoho nastavení, mohli by ti vyhovět, já to tak několikrát řešil. Můžeš zkusit direktivy ini_set nebo v .htaccess direktivu php_value, ale ini_set má stejný problém - stejně se vykonává až po parsování kódu, takže parse errory tak zase nezachytíš.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: