Høgskolen i Oslo Web-programmering Feilhåndtering i PHP.

Slides:



Advertisements
Liknende presentasjoner
Support, nye funksjoner og tjenester fra Uni Pluss
Advertisements

Design av sikre web-applikasjoner
Høgskolen i Oslo Webprogrammering Tilstandsbevaring Sessions og cookies.
Hvordan laste opp tankekart til Itslearning via iCabMobile?
Webprogrammering (LO113A) 1 Kom i gang med PHP. Webprogrammering (LO113A) 2 Mål  Installere Apache og PHP  Konfigurasjon av Apache og PHP  Forstå samspillet.
Bruke Gmail 3a Gmail er et e-postprogram.
Filbehandling (Kapittel 8)
Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook.
Høgskolen i Oslo Webprogrammering Grunnleggende PHP.
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Introduksjon til objektorientert programmering i PHP
TIF seminar -Visual Basic (VBA) og RExcel Elisabeth Orskaug Norsk Regnesentral Oslo, 8. november 2011.
<KLASSIFISERING>
Webprogrammering SQL og databaser del 2.
Sende e-postmelding videre
Begrenset redigering “Klubbjournalister” For web ansvarlig klubb.
Høgskolen i Oslo Webprogrammering Introduksjon til Java-scripting.
Objektorientert programmering i PHP del 2
Gerica på ny plattform Oppdatert
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Gjennomgang av prøven Tidsangivelse. Prøven deles ut Vi fyller ut øvelsen sammen.
Fag LO189D - Objektorientert programmering Objektorientert programmering© Else Lervik, TISIP - HiST/IDB vår-99Leksjon 11 Applet’s Hva karakteriserer applet’sside.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
INF150 Programmering mandag 11.9
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Presentasjon av ROS PP Trykk pil for neste bilde.
Flash og ActionScript - Nye muligheter Jostein Nordengen.
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
1 Arrayer og form(ularer) (Kapittel 4). 2 Mål  Forstå assosiative og superglobale arrays  Kunne behandle webformularer (forms)  Kjenne forskjellen.
1 Organisering av kode (Kapittel 5). 2 Mål ● Forstå inkludering er og hvilken gevinst det gir ● Lære å utvikle egne funksjoner ● Forstå variablenes virkemåte.
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
Webprogrammering Skjema i HTML og PHP.
Høgskolen i Oslo Webprogrammering Java-scripting 2 Klientvalidering.
Stringmanipulasjon, RegEx og validering
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Databasen II Sesjoner, stored procedures, error handling.
Med hånda i kakeboksen. Oblig 4, cookies, sesjoner, stored procedures, error handling.
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
© Aleks Rokic, mai 2010 VegReg 3.0 – Del 3 Gjennomgang 19. – 21. mai 2010.
Ankh Testing av papirprototyp av GUI. Testens forløp Visuell introduksjon av VS.NET Navigasjonsmodellen vår Revisjonskontrollsystemer Intervju ang. databakgrunn.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 18.9 Lesing av data fra fil og skriving av data til fil. Side 411 – 4.. Kap 4.
Oppgaver til kodegenerering etc. INF-5110, 2013 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet,
Kontinuerlig kvalitetskontroll. Hvordan komme helt i mål.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Opplæring: Pålogging Prosedyre for logge på og av, låse og åpne PC’er DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
SMS – System for Byggmakker Lade Gruppe 31E Av Olaf R.A. Nykrem & Audun Håberg.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
© USIT/SAPP/GT, Bård Jakobsen UNIVERSITETET I OSLO USIT :10 Side 1 Mail ved UiO v/ Bård H.M. Jakobsen (GT/SAPP/USIT)
Protokoller Pensum: Olsen, kap. 5 og 6. Kommunikasjonsprotokoll Rutiner for å administrere og kontrollere oversending av data Telefonsamtale (”Hallo”,
Upload av bildefiler Utdrag fra ImageIn Ved Kirsten Klæbo Tirsdag 25/11-03.
Inf1000 (Uke 5) Arrayer, filer og tekst
© USIT/SAPP/GT, Bård Jakobsen UNIVERSITETET I OSLO USIT :34 Side 1 FEIDE – BAS – Cerebrum v/Bård H.M. Jakobsen GT/SAPP/USIT, UiO.
Finne feil - Debugging Introduksjon til sortering.
Kapittel 10 Exceptions Handtering av exceptions Ein exception er eit objekt som representerer ein feil eller eit unntak Exceptions blir kasta av.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Å bruke VOFO Oslo-bloggen Ingvar B.. Hvorfor blogg? En blogg er først og fremst et sosialt medium. Innleggene er gjerne lengre og mer forseggjorte.
Kom i gang med Python Pål Hellesnes SYSTEMUTVIKLER
v/Bård H.M. Jakobsen GT/SAPP/USIT, UiO
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
Digital innsending av pass via nettbank
For, While, prosedyrer m/ parametere, funskjoner
Utskrift av presentasjonen:

Høgskolen i Oslo Web-programmering Feilhåndtering i PHP

I dag l Feilhåndtering i PHP l Bruke dette videre i faget l Gjennomgang av kode. l Oppgaveløsning –Oblig 1 leveres 6. mars l Ingen lab på torsdag (næringslivsdag) l Ingen forelesning neste uke (undervisningsfri) l Lab går som vanlig neste uke.

Feilhåndtering i PHP l I en ”ordentlig” web-applikasjon må alle feil håndteres av programmet l Ingen feil skal skrives ut av php –Warning : fopen(logg.txt) : failed to open stream… l Ingen feil skal gjøre at programmet stopper l Feilmeldinger skal vises til brukeren slik at de kan forstå feilen l Videre bør feil ”logges” til fil –Administrator kan så se alle feil i produksjon

l Warning : fant ikke filen som skulle skrives til. l Ikke brukervennlig!

Første steg: Test på feilsituasjoner der du kan! l Mange PHP funksjoner returnerer verdier (som oftest true/false) avhengig om det gikk ok eller ikke. l Dersom disse returverdier ikke testes på skrives det ut en warning i nettleseren l Dette ønsker vi ikke l Test derfor på retur av PHP funksjoner der det er mulig (f.eks ved filhåndtering).

l Teste der det er mulig!

Andre steg : å logge feil l I reelle driftssituasjoner med mange brukere l Administrator må vite om feil i systemet l Feilene må ikke bare gå til brukerne l Kan bruke en PHP funksjon : –error_log(”Feilmelding”,3,”Logg.txt”); –2. parameter: »1 : Sendes til mailadresse (forsiktig: kan føre til mange mail) »3 : Sendes til fil

l Logger feil til fil i tillegg til å skrive ut melding til bruker

Tredje steg: Ikke vis feil l Det er ingen garanti for at du har skrevet inn tester der for det er behov for det. l For å unngå systemmeldinger til bruker: –error_reporting(0); eller E_ALL, E_ERROR etc. –Med 0 : Ingen warning vil bli vist bruker uansett! l Må ha en generell mekanisme for å fange opp feil (warnings) som programmet ikke tester på

Tredje step fort: l En generell php funksjon sikrer dette –set_error_handler(funksjonsnavn,E_TYPE); –funksjonsnavnet angir en funksjon som utføres ved ulike typer feil (skrevet av deg) –E_TYPE = E_ALL|E_ERROR|E_WARNING|E_USER_ERROR l Inne i funksjonen som er angitt i error handler –Bygg en meldning og skriv denne til fil

Set_error_handler l $errno = feilnummer fra systemet l $errstr = feilmeldingen l $errfile = filen som genererte feilen l $errline = linjenummeret som feilen oppstod i

Fjerde steg : Fatale feil l Fatal errors stopper hele kjøringen av en fil l Også disse bør brukeren forskånes for l Også disse feilene bør logges til en fil l I tillegg bør brukeren dirigeres til en ”feilside” hvor det vises en brukervennlig melding –Som forklarer at applikasjonen har stoppet, feilen er logget og at brukeren må starte på nytt.

Mål at ingen slike meldinger skal oppleves av brukeren i ”produksjon”

For å håndtere fatale feil l Egen php funksjon som utføres før scriptet avsluttes: –Register_shutdown_function(avsluttFunksjon) –Parameteren avsluttFunksjon (NB ingen ” ” her!) angir hvilken egendefinerte funksjon som skal kalles ved fatale feil

Shutdown function l Funksjonen henter siste feilmelding (error_get_last) l Bygger en melding med et linjeskift ($message) l Skriver til logg fil (error_log) l Går til en ny side som viser en brukervennlig feilmelding (header(”Location:url”))

Try, throw, catch l Er ikke spesielt nyttig da man må eksplisitt kaste (throw) alle feil og fatale feil håndteres ikke. try { $filhandler = fopen("test.txt","r"); if($filhandler==NULL) throw new Exception; } catch (Exception $e) { echo "Feil".$e->getMessage(); }