Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Error handler - aby nie wyświetlał instrukcji wykonanych przed błędem
Forum PHP.pl > Forum > Przedszkole
ownede
Witam.
Chciałbym napisać dla swojego projektu "error handler".
Mam już napisane podstawy, jednak nie wiem jak zrobić, aby nie wyświetlał instrukcji wykonanych wyżej.

Takie coś jest w myBB, tutaj jakaś przykładowa strona z błędem z cache google - http://209.85.229.132/search?q=cache:5a7-5...=clnk&gl=pl

Z góry dzięki,
ownede
piotrooo89
jakich instrukcji? podaj jakiś kod co ma sie wyświetlać, bo instrukcje wyżej to raczej mało mówi.
ownede
Chodzi o to, że mam skrypt PHP.
Błąd wywołuje linijka 200, i żeby nie wyświetlało tego co się działo przed błędem jak domyślny handler PHP.
Żebym mógł sobie ładne okienko o błędzie handlerem wygenerować, a tego co wcześniej nie było widać tongue.gif
piotrooo89
hmmm, to jak będziesz miał błąd to przekierowuj header'em na stronę error.php na której sobie odpowiednio ten błąd obsłużysz. ja bym w tym kierunku kombinował.
ownede
Cytat(piotrooo89 @ 20.11.2009, 12:45:10 ) *
hmmm, to jak będziesz miał błąd to przekierowuj header'em na stronę error.php na której sobie odpowiednio ten błąd obsłużysz. ja bym w tym kierunku kombinował.

O tym myślałem, tylko w myBB jest to ciekawie zrobione bo bez przekierowania tongue.gif

Mógłbym przekierowywać na show_error.php?errno={$errno}&errstr={$errstr}... ale wtedy można sobie wygenerować jaki się chce błąd :|
piotrooo89
jak może być zrobione bez przekierowania? masz jakiś 'żywy' przykład?
piotr94
bo tam wszystko jest robione tak:
1. generowanie treści, obsługa bazy danych itd...
2. otwieranie szablonów styli i przypisanie do odpowiednich pól wartości tekstowych
3. jeśli wystąpił błąd - wygeneruj komunikat o błędzie, jeśli nie - idź do kroku 4
4. wyświetla zawartość strony.

czyli, zamiast echo(); dajesz np. $bufor_z_trescia.='';
i potem po wykonaniu całej strony sprawdzasz czy nie ma błędu, jeśli nie o dajesz echo($bufor_z_trescia);, a jeśli był jakiś błąd to wyświetlasz komunikat o błędie

najprostsze rozwiązanie, jakie może być ;-)
piotrooo89
kurcze rzeczywiście proste. będe musiał to u siebie gdzieś przetestować. choć ja i tak łapie exception więc trochę inaczej ale pomysł prosty za zarazem genialny.
piotr94
jak łapiesz exception przez try...catch to jeszcze prościej, bo nie musisz pisać własnej funkcji i robić tego poprzez set_error_handler();
ownede
Dzięki wielkie smile.gif
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.