08. september 2004 - 22:53Der er
14 kommentarer og 1 løsning
tjek først om telefon nr. eksisterer i databasen
hejsa jeg har lavet dette login script, som virker fint. Den tjekker om password passer til det indtastede tlf. nummer, MEN hvis den besøgende ikke indtaster et telefonnummer der er i databasen, så skal han videresendes til login2004.asp.
Hvad skal tilføjes? --------------------------- strSQL = "SELECT * FROM kunder WHERE telefonnr='" & request("telefonnummer") & "'" 'Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL)
if request.form("kodeord") = rs("password") then session("telefonnummer") = rs("telefonnr") Session.Timeout = 120 session("password") = "pwok" Session.Timeout = 120 Response.redirect("2004/index.asp") else response.redirect("login2004.asp") end if
if request("telefonnummer") <> "" then strSQL = "SELECT * FROM kunder WHERE telefonnr='" & request("telefonnummer") & "'" 'Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL)
if request.form("kodeord") = rs("password") then session("telefonnummer") = rs("telefonnr") Session.Timeout = 120 session("password") = "pwok" Session.Timeout = 120 Response.redirect("2004/index.asp") else response.redirect("login2004.asp") end if else response.redirect "login2004.asp" end if
strSQL = "SELECT * FROM kunder WHERE telefonnr='" & request("telefonnummer") & "'" 'Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL) if rs.EOF then response.redirect("login2004.asp")
if request.form("kodeord") = rs("password") then session("telefonnummer") = rs("telefonnr") Session.Timeout = 120 session("password") = "pwok" Session.Timeout = 120 Response.redirect("2004/index.asp") else response.redirect("login2004.asp") end if
men hvorfor ikke lave SQL sætningen så den tjekker både tlf og password? Sådan her:
strSQL = "SELECT * FROM kunder WHERE telefonnr='" & request("telefonnummer") & "' AND [password] = '" & replace(request.form("kodeord"),"'","") &"'" 'Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL)
if not rs.EOF then session("telefonnummer") = rs("telefonnr") Session.Timeout = 120 session("password") = "pwok" Session.Timeout = 120 Response.redirect("2004/index.asp") else response.redirect("login2004.asp") end if
ja - eagleeye har helt ret ... min tager kun højde for at tlf. nr. er tastet ind... Reelt set bør man på indtastningssiden kontrollere om telefonnummeret er indtastet - men derefter kontrollere at tlf.nr eksisterer
for den sags skyld kan man jo "snyde" med blot at indtaste et tal eller lign. derfor skal man efterfølgende kontrollere at feltet matcher det man ønsker... Med forlov opretter jeg lige et spørgsmål og deler point :o)
Så har du en On Error Resume Next et sted for hvis man angiva tlf="ABX" vil recordsetet være tomt og rs("password") vil give en fejl om "BOF or EOF true" Så der heller ingen grund til at tjekke om tlf er en tom streng.
den ser helt nøjagtigt sådan ud, og det virker altså perfekt:
<!-- #include virtual="/_db.asp" --> <% ' dette kontrollerer om den besøgende har adgang til disse side ' samt laver en session som husker på kundens telefonnummer ' MÅ IKKE RØRES If request.form("telefonnummer") = "" then response.redirect("login2004.asp") end if If request.form("kodeord") = "" then response.redirect("login2004.asp") end if
' SQL forespørgsel strSQL = "SELECT * FROM kunder WHERE telefonnr='" & request("telefonnummer") & "'" 'Udfør forespørgsel (rs indeholder nu resultatet) Set rs = Conn.Execute(strSQL)
Set rs = Conn.Execute(strSQL) if rs.EOF then response.redirect("login2004.asp")
if request.form("kodeord") = rs("password") then session("telefonnummer") = rs("telefonnr") Session.Timeout = 120 session("password") = "pwok" Session.Timeout = 120 Response.redirect("2004/index.asp") else response.redirect("login2004.asp") end if
damm det er vist blevet sent....gaaab....sorry indrømmet, eagleeye, du gik glip af velfortjente point, sorry, men jeg propper lidt ekstra i næste gang du hjælper mig :-)
Det helt iorden, superior har delt dem imellem os ;)
Det er bare lidt sjovt.. Du kopier min kode, afviser mig svar og giver point til et helt andet svar fordi det er kommet 4 sekunder før...
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.