Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Error handler - aby nie wyświetlał instrukcji wykonanych przed błędem
ownede
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 14.03.2009

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


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
Go to the top of the page
+Quote Post
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




jakich instrukcji? podaj jakiś kod co ma sie wyświetlać, bo instrukcje wyżej to raczej mało mówi.
Go to the top of the page
+Quote Post
ownede
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 14.03.2009

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


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ć (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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ł.

Ten post edytował piotrooo89 20.11.2009, 12:45:45
Go to the top of the page
+Quote Post
ownede
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 14.03.2009

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


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 (IMG:style_emoticons/default/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 :|
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




jak może być zrobione bez przekierowania? masz jakiś 'żywy' przykład?
Go to the top of the page
+Quote Post
piotr94
post
Post #7





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


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ć ;-)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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.
Go to the top of the page
+Quote Post
piotr94
post
Post #9





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


jak łapiesz exception przez try...catch to jeszcze prościej, bo nie musisz pisać własnej funkcji i robić tego poprzez set_error_handler();
Go to the top of the page
+Quote Post
ownede
post
Post #10





Grupa: Zarejestrowani
Postów: 44
Pomógł: 2
Dołączył: 14.03.2009

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


Dzięki wielkie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 22.08.2025 - 12:56