Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy jest możliwe wykonanie przerwy tech. jeśli na stronie pojawi się parse error?
Forum PHP.pl > Forum > PHP
casperii
Witam, chciałbym się dowiedzieć, czy jest możliwość zrobienia tak by wyświetlało przerwę techniczną jeśli na stronie pojawi się błąd php parse error.?
ctom
skasowana błędna podpowiedź
nospor
@ctom a od kiety TRY przechwytuje PARSE ERRORy?
ctom
@nospor - faktycznie, mózg dziś wolniejszy od palców wink.gif

@casperii - przepraszam za wprowadzenie w błąd
Crozin
Tak, ale będzie to konfiguracja na poziomie serwera HTTP, nie aplikacji PHP. Błąd składni zostanie zapisany w logu serwera, więc musiałbyś mieć coś co będzie te logi analizować i w przypadku wystąpienia danego typu błędu wyłączy serwer czy włączy zaślepkę.
Pyton_000
Eeeetam się nie znacie wink.gif

  1. register_shutdown_function("shutdownHandler");
  2. function shutdownHandler() //will be called when php script ends.
  3. {
  4. $lasterror = error_get_last();
  5. switch ($lasterror['type'])
  6. {
  7. case E_ERROR:
  8. case E_CORE_ERROR:
  9. case E_COMPILE_ERROR:
  10. case E_USER_ERROR:
  11. case E_RECOVERABLE_ERROR:
  12. case E_CORE_WARNING:
  13. case E_COMPILE_WARNING:
  14. case E_PARSE:
  15. $error = "[SHUTDOWN] lvl:" . $lasterror['type'] . " | msg:" . $lasterror['message'] . " | file:" . $lasterror['file'] . " | ln:" . $lasterror['line'];
  16. die($error);
  17. }
  18. }

To do jakiegoś pliczku np. errorHandler.php
A potem do php.ini do "auto_prepend_file" ścieżkę do tego pliku i koniec.
Dodatkowo error_reporting na 0 żeby nie pluło standardowymi błedami.
casperii
@Pyton_000 dzięki za twoją funkcję, ale na tym forum znalazłem bogatszą wersję pod adresem: http://forum.php.pl/index.php?showtopic=126431

Tylko nie wiem czemu nie działa obsługa błędów dla parse error. Mimo że dodałem:

case E_PARSE: break;
Pyton_000
register_shutdown_function != set_error_handler
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.