ownede
20.11.2009, 12:31:22
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=plZ góry dzięki,
ownede
piotrooo89
20.11.2009, 12:40:43
jakich instrukcji? podaj jakiś kod co ma sie wyświetlać, bo instrukcje wyżej to raczej mało mówi.
ownede
20.11.2009, 12:43:29
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ć
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ł.
ownede
20.11.2009, 12:47:46
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

Mógłbym przekierowywać na show_error.php?errno={$errno}&errstr={$errstr}... ale wtedy można sobie wygenerować jaki się chce błąd :|
piotrooo89
20.11.2009, 12:52:30
jak może być zrobione bez przekierowania? masz jakiś 'żywy' przykład?
piotr94
20.11.2009, 13:51:30
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
20.11.2009, 13:56:14
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
20.11.2009, 14:24:23
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
20.11.2009, 14:42:46
Dzięki wielkie
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.