Avatar billede meltinis Nybegynder
11. januar 2004 - 03:32 Der er 8 kommentarer og
1 løsning

Error handler til Chili!Upload så bruger ikke får ASP fejlmed.

Jeg har lavet en side hvor bruger kan skrive en gæstebog og vedlægge et billede. Det virker perfekt, men kun hvis bruger overholder reglerne, fx. max størrelse på fil. Hvis bruger ikke gør det vises der en ASP fejlmeddelelse som serveren selv genererer. Selv om der står hvad der er galt kan nogle bruger godt på i en tilstand der er en blanding af koma og panik. (De sidder helt stille mens deres arme flyver rundt... ja jeg ved det lyder mærkeligt) Er der en måde man kan "gribe" disse fejl og lave noget pænere til bruger, fx.

if [chili objekt].error = et eller andet
  alert("Du er jo idiot... læs reglerne igen!!!")
end if

Åhhhhh jeg håber sådan...
Avatar billede coltau Juniormester
11. januar 2004 - 11:33 #1
Du skal have fat i IIS. Det skal sættes op på serveren.

På serveren kan du henvise til din egen asp-kode som så viser en pænere fejlmeddelelse.
Avatar billede eagleeye Praktikant
11. januar 2004 - 11:54 #2
Typsik gør man det ved at slå fejl kode fra med On Error Resume Next og så selv tjekke på err objectet om der er kommet en fejl.

Eks:

<%
on error resume next

Set fbase = Server.CreateObject("Chili.Upload.1")
fbase.SizeLimit = 100000
filnavn = fbase.SourceFileName
t = inStrRev(filnavn,"\")
if t > 0 then  filnavn = Mid(filnavn,t+1)
fbase.SaveToFile(Server.mapPath("./" & filnavn))

if err.number <> 0 then
  Response.Write err.Description & "<br>"
end if
%>
Avatar billede eagleeye Praktikant
11. januar 2004 - 12:01 #3
Avatar billede meltinis Nybegynder
11. januar 2004 - 12:43 #4
Jamen det er jo perfekt... Er der en måde så jeg får udskrevet fejlen uden at den går videre? Lige nu så laver "on error resume next" det at den får serveren til at fortsætte på fejl. Det er et problem da den derfor bare opretter posten i gæstebogen uden billede. Og hvis jeg ikke har den linie med så skriver serveren den normale fejlmeddelelse. Er der noget der hedder: on error resume [et eller andet sted i coden]? Jeg skal bare have den til at fortsætte i coden da jeg senere tager fejlen og udskriver den. Der efter skal jeg så have brugeren én side tilbage, men det kan vel bare gøres med JAVASCRIPT...
Avatar billede eagleeye Praktikant
11. januar 2004 - 13:09 #5
On error resume next gør den køre vidre i koden selvom der er en fejl. Så efter man har lavet noget man ved kan gå galt så kan man lave tjekkett. Som det lille eks vist. Lige efter linjen:
fbase.SaveToFile(Server.mapPath("./" & filnavn))

Vil den komme med en fejl hvis filen er for stor.


Du kan stoppe kode med Response.End så det kan tilføjes i if sætningen:

if err.number <> 0 then
  Response.Write err.Description & "<br>"
  Response.End
end if
Avatar billede meltinis Nybegynder
11. januar 2004 - 13:14 #6
OK...cool. Lige nu har jeg bare lagt resten af koden ind under ELSE delen af if err.number <> 0 then, men det andet er mere overskueligt...
Har du styr på JAVASCRIPT? Jeg kan sku ikke lige huske coden til at smide bruger tilbage... SPG er om det kan lade sig gøre når det nu er på klientsiden det skal foregå?!?!?
Avatar billede eagleeye Praktikant
11. januar 2004 - 13:18 #7
Som link???
<a href="java script:history.back();" title="Link: Tilbage til forrige side">Tilbage
</a>

Eller automatisk:
<scritpt>
history.back();
</script>
Avatar billede eagleeye Praktikant
11. januar 2004 - 13:18 #8
Hvis det automatisk kan du ect redirect?


if err.number <> 0 then
  Response.Write err.Description & "<br>"
  %>
<a href="java script:history.back();" title="Link: Tilbage til forrige side">Tilbage
</a>
  <%
  Response.End
end if
Avatar billede meltinis Nybegynder
11. januar 2004 - 13:28 #9
Jamen jeg takker for alt din hjælp :)
Pointene er dine...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester