Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PHP error handling

[es] :: PHP :: PHP error handling

[ Pregleda: 1671 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dr NIK
Novakovic Marko
BG

Član broj: 19744
Poruke: 132
*.adsl.beocity.net.

Sajt: www.mnovakovic.info


+1 Profil

icon PHP error handling02.05.2007. u 12:52 - pre 206 meseci
Dakle, pitanje je pre svega za one sa malo vise iskustva..

Kako da izadjem na kraj sa greskama.. Ima li neke teorije koja se time bavi uopste?

Sta ako dobijem greske tipa E_WARNING ili E_NOTICE, ali necu da ih prikazem, gde da ih outputujem? Kako to da utice na dalje izvrsavanje programa? Ili uopste greske iz moje klase, modula, sta sa njima da radim? Na primer, imam u funkciji 5 SQL upita, i sada MySQL za svaki od njih vraca rezultat ili gresku... A sta ako se desi da je jedan od tih upita los? Da odradi die() moze, ali ako je aktivna apllikacija glupo je zbog svih korisnika.. plus sta da radim sa ovim prethodnim upitima koji su vec odradjeni? Kako da napravim da greske budu mulitlingual...

Ni sam ne znam da objasnim tacno koji se sve problemi javljaju, ali mislim da ovi vec malo iskusniji znaju o cemu govorim, pa ako ima ili neka literatura o tome ili par saveta, bilo bi jako dobrodoslo..
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.adsl.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Re: PHP error handling02.05.2007. u 13:54 - pre 206 meseci
Mislim da je najbolja praksa da greske ne prikazujes korisnicima (php-ove greske tipa E_WARNING ili E_NOTICE), za ovim nema potrebe, cak je veoma lose, jer ti odaje podatke o strukturi i nacinu pisanja aplikacije, te bi neko sa vise iskustva mogao lakse da ti napadne sajt. Kao sto je skoro bilo na blic.co.yu, gde se video ceo upit, sta se i kako izvrsava. Cak je mozda mogao i obican mysql injection da prodje. Svoje 'custom' greske (tipa: uneli ste pogresnu vrednost itd.) prikazujes u nekom info panelu (pogledaj kako to recimo google radi u mail-u, kad posaljes mail) a njihovo prevodjenje je vec za drugu temu.
A sto se tice losih upita, toga u dobroj aplikaciji nema . Debugovanje je podjednako vazna faza razvoja kao sto je i projektovanje, a mozda cak i vaznija. Sam probas da srusis sopstvene upite, i onda sam 'hendlujes' greske koje nastaju, tj. ti i dalje vodis aplikaciju u pravom smeru, ne prepustas slucaju.
Za ukljucivanje i iskljucivanje gresaka je najbolje da pogledas, naravno, php.net i sve funkcije koje sadrze 'error' u nazivu, a najkorisnija je error_reporting(); koju koristis tako sto postavis error_reporting(E_ALL); na pocetku dok razvijas samu aplikaciju, a cim krene live, setujes je na error_reporting(0); Naravno, pogledaj manual o ovome i o drugim funkcijama (error)log na primer).
 
Odgovor na temu

milosijaa
Milos djordjevic
PHP Developer
srbija

Član broj: 88371
Poruke: 135
*.dialup.neobee.net.



Profil

icon Re: PHP error handling06.05.2007. u 16:05 - pre 206 meseci
Kao sto rece dakipro

Korisniku nikako ne prikazati greske( kakve god da su).

Umesto toga mozes da ih upisujes u neku datoteku. Kako bi eventualno doradio kod.

Dakle s greskma na kraj mozes da izadjes tako sto ces podesiti php.ini(ako imas dozvolu za to) ili u kodu kao sto ti rece dakipro.

Greske tipa E_WARNING ili E_NOTICE dobijes ako kod nije dovoljno robustan.

Ukljuci vise provera podataka koje dobijas iz baze, sa formi itd...

 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: PHP error handling06.05.2007. u 20:06 - pre 206 meseci
Stvarno ne treba prikazivati korisnicima greske tipa error_reporting iz PHP-a, ali ako aplikacija zahteva da korisnicima prikaze greske, dali je aplikacija ucinila sve sto je korisnik trazio ili nesto iz sklopa zahteva se nije izvrsilo kako treba. Onda bi bilo od velike koristi da korisnik zna sta se tacno dogodilo.
Za to bi trebalo da svaku gresku za neki zahtev stavis u niz.
Pr. if(!$nesto) $greska[] = 'greska bla';
pa na kraju prikazes sve greske
if(count($greska) != 0)
foreach($greska as $opis) {
echo $opis;
}
 
Odgovor na temu

[es] :: PHP :: PHP error handling

[ Pregleda: 1671 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.