Avatar billede morten_soegaard Nybegynder
29. oktober 2004 - 10:08 Der er 12 kommentarer og
1 løsning

Fejl i login script

Hejsa..
Jeg har problemer med et login script. Koden ser således ud:

<%
Set my_conn = Server.CreateObject("ADODB.Connection")
my_conn.Open "Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=...; UID=...; PWD=...;"

strSQL = "SELECT * FROM login"

Set rs = my_conn.Execute(strSQL)

fejl = ""
If Request("Submit")<>"" Then
    If Request("brugernavn2") = rs("brugernavn") and _       
        Request("password2")= rs("password") Then
        Session("Valid") = Request("brugernavn2")
        Response.redirect "test.asp"

    Else       
        fejl = "Forkert brugernavn eller password. Prøv igen!"   
    End If
End If
%>

Meningen er at den skal hente brugernavn og password fra databasen "login" men som det står nu melder den denne fejl:

ADODB.Recordset.1 error '80020009'

Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record.

/test/default.asp, line 12



Håber i kan hjælpe...

Mvh Morten
Avatar billede keysersoze Ekspert
29. oktober 2004 - 10:13 #1
sikker på at din kolonne "login" ikke er tom?
Avatar billede fennec Nybegynder
29. oktober 2004 - 10:14 #2
Af sikkerheds grunde vil jeg anbefale at du laver dit script om.

If Request("Submit")<>"" Then
  strSQL = "SELECT * FROM login where brugernavn='"& replace(Request("brugernavn2"),"'","''") &"' and password='"& replace(Request("password2"),"'","''") &"'"
  Set rs = my_conn.Execute(strSQL)
    If not rs.eof Then
        Session("Valid") = Request("brugernavn2")
        Response.redirect "test.asp"
    Else       
        fejl = "Forkert brugernavn eller password. Prøv igen!"   
    End If
End If
Avatar billede morten_soegaard Nybegynder
29. oktober 2004 - 10:16 #3
Jo altså der er ikke tilføjet nogle login i databasen endnu.. Men så skulle scriptet jo bare sige forkert login.
Avatar billede fennec Nybegynder
29. oktober 2004 - 10:22 #4
.. Hvis recordsettet er tom om man prøver at hente data fra den får du fejl. Det tager mit script også hånd om. Hvis det skulle gøre det i dit script skulle du have en if sætning omkring hele tjekket.

if not rs.eof then
  fejl = ""
  If Request("Submit")<>"" Then
  ...
  ...
end if
Avatar billede morten_soegaard Nybegynder
29. oktober 2004 - 10:24 #5
Men den løsning som du har skrevet skal jeg vel bare erstatte fra strSQL(Skal vel også slettes?) og koden ud?
Avatar billede keysersoze Ekspert
29. oktober 2004 - 10:29 #6
ja - fennec er godt i gang så jeg behøver ikke sige så meget mere :)

udover - grunden til at du får den fejl er at du forsøger at spørge på nogle værdier - rs("brugernavn") og rs("password") - som jo ikke findes fordi databasen er tom.

fennecs metode er også den korrekte.
Avatar billede fennec Nybegynder
29. oktober 2004 - 10:35 #7
morten_soegaard >>
scriptet skal bruges præsist som det er. Der finder du en bruger, med det navn/pass som der er angivet, i databasen (vælger altså kun EN række og ikke hele tabellen, som kan være en sikkerheds brist). Hvis brugerne ikke eksistere (evt pga forkert indtastning) bliver man ikke logget ind.
Avatar billede morten_soegaard Nybegynder
29. oktober 2004 - 10:51 #8
fennec> Ja præcis som du har skrevet det ik? Og så selvfølgelig bare en forbindelse til databasen.?
Avatar billede fennec Nybegynder
29. oktober 2004 - 10:53 #9
jeps.
Avatar billede morten_soegaard Nybegynder
29. oktober 2004 - 11:21 #10
Fino det prøver jeg lige senere i dag
Avatar billede morten_soegaard Nybegynder
29. oktober 2004 - 17:05 #11
Det virker upåklageligt fennec... Kan ik svare så jeg kan give dig pointene?
Avatar billede fennec Nybegynder
01. november 2004 - 08:10 #12
.o) <-- One Eyed Jack
Avatar billede fennec Nybegynder
01. november 2004 - 08:10 #13
det skulle være et svar :o)
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