loginscript: <% if Request.Form("action") = "logout" then Session.Abandon() Response.Redirect "Loginform.asp" end if if Not Session.Contents("user") <> "" then ' secure login information strUsr = Server.HTMLEncode(Replace(Request.Form("user"),"'","''")) strPsw = Server.HTMLEncode(Replace(Request.Form("password"),"'","''"))
'login procedure strSQL = "Select * from `Users` where LCase(`Nickname`) = '" & Lcase(strUsr) & "' AND Lcase(`Password`) ='" & Lcase(strPsw) & "'" %> <!--#include file="../../Database/Connect.asp"--> <% 'check if username and password matches if rs.EOF or rs.BOF then Response.Redirect "Loginform.asp" else strSQL2 = "Select * from `Users` where LCase(`Nickname`) = '" & LCase(strUsr) & "'" set rs2 = Conn.Execute(strSQL2)
StrNick = rs2("Nickname") 'fill in information in the sessions that will follow the user around the page session.Contents("user") = strNick response.redirect "Login.asp"
Mit problem er, at uanset hvad returnerer den login'et som forkert, OG REDIRECTER TIL LOGINFORM.ASÅ HVOR MAN SÅ KAN PRØVE IGEN OG SÅ KØRER DET HELE I RING UDEN AT MAN KAN LOGGE IND - HVORFOR?
Der ud iver så ser det lidt underligt ud du redirecter til login.asp når man er logget ind, og så igen ved login formen er der redirect til login.asp hvis der er et brugernavn og form'en sender også til login.asp, skal det være sådan?
Kan du uddybe hvad fil navne er og hvad kode der i?
loginform.asp indeholder det jeg har skrevet som "loginform" og login.asp indeholder det jeg har skrevet som "loginscript" der er ikke noget galt med connect, connect opretter bare min MySQL database forbindelse - jeg kan sagtens se nyheder og sådan med connect.asp
Mine redirect's ghår ud på, at loginform vises i en iframe, derfor hvis man er logget ind og man refresher (sessionen er jo ikke død endnu) bliver man bare redirectet til sin "login" side, istedet for at man tror man skal logge ind igen.
connect ser sådan her ud: strDSN = "DRIVER={MySQl ODBC 3.51 Driver};SERVER=www.freesql.org;DATABASE=xxxx;USER=xxxx;PASSWORD=xxxx;Option=131072" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open strDSN set rs = conn.execute(strSQL)
ok, hvad sker der så på login.asp når man er logget ind?
Har du prøvet et udskrive: session.Contents("user") Og tjekke om den får det rigtige selvom den kommer ind på login formen..
Umiddelbart kan disse linier:
if rs.EOF or rs.BOF then Response.Redirect "Loginform.asp" else strSQL2 = "Select * from `Users` where LCase(`Nickname`) = '" & LCase(strUsr) & "'" set rs2 = Conn.Execute(strSQL2)
StrNick = rs2("Nickname") 'fill in information in the sessions that will follow the user around the page session.Contents("user") = strNick response.redirect "Login.asp"
rettes til dette da rs også indeholder Nickname:
if rs.EOF or rs.BOF then Response.Redirect "Loginform.asp" else StrNick = rs("Nickname") 'fill in information in the sessions that will follow the user around the page session.Contents("user") = strNick response.redirect "Login.asp"
Scriptet fungerer hvis man kører det i sin egen side (altså åbner loginform sidne i en helside og skriver derfra), men hvis det er i en iframe - som det er, så fungerer det ikke.
jeg kunne åbentbart kun køre den hvis den IKKE var i en iframe :S ? tak for interessen
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.