27. november 2002 - 13:58Der er
5 kommentarer og 1 løsning
Response.redirect + HTTP_REFERER
Hej,
Jeg er igang med et password system. Det fungerer således:
1. Man bliver sendt hen til en side med indtastning af login+pw. 2. På denne side er en HTML-form, og endvidere lægges HTTP_REFERER i en session variabel - som vist her:
3. Siden som læser indholdet af formularen tjekker om passwordet er rigtigt eller forkert. Hvis forkert udskrives "Forkert password", og man skal sendes tilbage til siden man kom fra.
Hvis det er rigtigt, sættes en anden session variabel til "yes" for godkendt password, og man skal sendes videre til den URL, som Session("referer") indeholder - som vist her:
--- if ObjRS.eof = false then if objRS("salonpw")=salonpw then session("oksalonpw")="yes" response.redirect Session("referer") end if
else response.redirect Request.ServerVariables("HTTP_REFERER") end if ---
Dette virker enormt logisk, synes jeg, men den giver denne fejl:
--- Response-objekt fejl 'ASP 0156 : 80004005'
Headerfejl
/signify/password_tjek.asp, linje 21
HTTP-headerne skrives allerede til klientbrowseren. Ændringer af HTTP-headers skal foretages, inden sideindholdet skrives. ---
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
måske kan du bruge dette, det kører jeg på min side lige nu:
<% if request.form("logonUser")="" or request.form("LogonPass")="" then response.redirect("default.asp?reason=nologin") end if strUsername=replace(request.form("LogonUser"),"'","''") strPassword=replace(request("LogonPass"),"'","''")
sql="select * from users where password='"&strPassword&"' and username='"&strUsername&"'" set rs=conn.execute(sql) if not rs.EOF then select case rs("options") case "1" session("login")="true" response.redirect("loginuser.asp") case "2" session("moderatorlogin")="true" response.redirect("loginmoderator.asp") case "3" session("adminlogin")="true" response.redirect("loginadmin.asp") end select else response.redirect("default.asp?reason=wronglogin") end if %>
ØV reposne.buffer = true er lige svaret Server.execute i stedet for response.redirect, da det foregår direkte på server og ikke kræver en roundtrip til klienten. Og så kan det gøres med if... Henrik
Synes godt om
Ny brugerNybegynder
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.