Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Error handler
Babcia@Stefa
post
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

Ostrzeżenie: (0%)
-----


Witam, mam coś takiego:

  1. <?php
  2. set_error_handler('otl_err', E_ALL);
  3. function otl_err($errNo, $errStr, $errFile, $errLine)
  4. {
  5. if($errNo == E_ERROR || $errNo == E_COMPILE_ERROR)
  6. {
  7. if(is_file('data/errors/' .$errNo. '.' .$errLine. '.txt'))
  8. {
  9. echo '<h1>Error</h1><br><li>This error alerdy has been reported.</li>';
  10. } else {
  11. echo '<h1>Error</h1><br><li>This error has been saved.</li><br><li><a href="javascript.history.back();">Back</a></li>';
  12. $fp = fopen('data/errors/' .$errNo. '.' .$errLine. '.txt', 'w');
  13. fwrite($fp, 'ErrNo: ' .$errNo. '
  14. Line: ' .$errLine. '
  15. Text: ' .$errStr. '
  16. File: ' .$errFile. '
  17. PHP: ' .PHP_VERSION. '
  18. OS: ' .PHP_OS. '');
  19. fclose($fp);
  20. }
  21. }
  22. }
  23. ?>


I co wstawić w warunek if aby funkcja reagowała tylko na błędy typu ,,parse error:", warning: function blablabla ... i undefined function blablabla (bez noticów)

Dziękuję, Babcia@Stefa
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tsharek
post
Post #2





Grupa: Zarejestrowani
Postów: 300
Pomógł: 1
Dołączył: 22.09.2003
Skąd: Czeladź

Ostrzeżenie: (0%)
-----


Nie da się zrobić żeby error handler reagował na parse error z prostego powodu: nie zostanie on wogle zainicjalizowany. Parse error jak sama nazwa wskazuje wywoływany jest przy parsowaniu kodu, czlyli jego tłumaczeniu na wewnętrzy język php. Dlatego jeżeli wystąpi nie wykonywany jest wogle skrypt.

Gdzieś kiedyś czytałem o wykrywaniu parse error w plikach includowanych. Chyba chodziło o to że parse error nie kończy wykonywanie całego skryptu, a jedynie includa, dlatego możliwe jest zoobowanie (zbuforowanie) wyjścia i sprawdzenie czy nie ma tam tekstów typu "Parse error..."
Jak już wspomniałem to GDZIEŚ KIEDYŚ o tym czytałem, nigdy nie sprawdałem, więc może się to okazać jako mit:) ale możesz spróbować:)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 00:43