21. juli 2003 - 12:39Der er
16 kommentarer og 1 løsning
Loginsystem søges.
Goddag. Jeg har siddet og lavet et loginsystem i asp, og det virker perfekt, men jeg vil gerne have at hver bruger går til hver sin side eller ?id. Er der en der ligger inde med såden et script, eller kan ændre mit script, så skriv endelig.
Jeg går ud fra, at du har en database, hvor du har gemt brugernes adgangskode. Så skulle det være en let sag, at gemme en refernce til en asp-side der også. Og ændringerne i dit script er næppe store. Drejer det sig om mange brugere? Vi de væsentlige del her på siden.
<% dim brugernavn, password brugernavn = request.form("brugernavn") password = request.form("kodeord") if brugernavn = "hansj" and password = "hjeppesen" then session.contents("login") = 1 session.contents("logintidspunkt") = now response.redirect "ok.asp" else session.contents("login") = 0 if Burgernavn="hansj" then reponse.redirect("hansj.asp") elseif response.redirect "ok.asp" end if %>
Nej ikke helt. Jeg går ud fra, at du vil sende hansj til siden hansj.asp, når hans password er i orden. Siden ok.asp, det var vel din gamle ok-side. (husk iøvrigt at lave indrykninger, så koden bliver til at læse. Det er også en god ide altid at starte en side med Option Explicit. Det betyder at alle variable skal erklæres i dim-sætninger, med dels er det lettere at finde fejl og dels vil siden faktisk køre en smule bedre)
<% dim brugernavn, password brugernavn = request.form("brugernavn") password = request.form("kodeord") session.contents("login") = 1 session.contents("logintidspunkt") = now if brugernavn = "hansj" and password = "hjeppesen" then response.redirect "Hansj.asp") elseif brugernavn="OleN" then response.redirect "OleN.asp") elseif ... sådan fortsættes med alle dine brugere ... else 'Her havner du, hvis brugeren har kludret. session.contents("login") = 0 reponse.redirect("Fejl.asp") 'evt send. på login tilbage til start end if %>
et par parentesfejl: det skal være sådan: response.redirect("side.asp") Hvis brugerne kludrer er det nok bedst at sende ham tilbage til det sted, hvor han indtastede brugernavn og password. evt kun et begrænset antal forsøg.
Nu virker det jo, men ikke når man skriver forkert. Når man skriver forkert kode eller noget, så burde den skriver "Forkert", men den kommer med denne fejl: Microsoft VBScript runtime error '800a01a8'
default.asp er det den side, hvor brugerne skriver deres brugernavn og password? Hvis det er tilfældet er der to muligheder. 1. Du laver en nyside fejl.asp, som er magen til default.asp, men som blot informerer om fejlen. eller 2. Du laver en sessions-variabel fejl, som du tester på i din default-side, og afhængig af om den er tilstede eller ej skriver du en fejlmeddelelse ud. Når der ikke er mange brugere er det ok at arbejde med sessionsvariable.
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.