Avatar billede stussy Nybegynder
08. september 2004 - 22:53 Der 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
Avatar billede Jman Praktikant
08. september 2004 - 22:58 #1
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
Avatar billede eagleeye Praktikant
08. september 2004 - 22:58 #2
Du kan tilføje tjek på om rs.EOF sådan her:


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
Avatar billede eagleeye Praktikant
08. september 2004 - 22:59 #3
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
Avatar billede Jman Praktikant
08. september 2004 - 23:01 #4
damn, du er agressiv eagleeye med besvarelser i øjebliket... skal du have din 1. plads tilbage  c",)
Avatar billede stussy Nybegynder
08. september 2004 - 23:15 #5
det virkede fint siperior og da du vare en hel del hurtigere end eagleeye så får du de mange point :-)

( 4 sek.......det er da mega lang tid)
Avatar billede eagleeye Praktikant
08. september 2004 - 23:16 #6
Prøv at angive et tlf som IKKE er i databasen :)
Avatar billede Jman Praktikant
08. september 2004 - 23:19 #7
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
Avatar billede Jman Praktikant
08. september 2004 - 23:20 #8
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)
Avatar billede stussy Nybegynder
08. september 2004 - 23:21 #9
det virker da fint UDEN et telefonnummer som eksisterer, så bliver man sendt til login2004.asp som jeg ønskede det ?
Avatar billede eagleeye Praktikant
08. september 2004 - 23:24 #10
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.
Avatar billede Jman Praktikant
08. september 2004 - 23:25 #11
Avatar billede stussy Nybegynder
08. september 2004 - 23:26 #12
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
   

Set ObjRSuser = nothing
ObjConn.CLose
%>
Avatar billede eagleeye Praktikant
08. september 2004 - 23:28 #13
LOL det jo min kode og ikke superior
Avatar billede stussy Nybegynder
08. september 2004 - 23:31 #14
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 :-)
Avatar billede eagleeye Praktikant
08. september 2004 - 23:33 #15
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...
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