Avatar billede skippie Nybegynder
06. januar 2005 - 13:53 Der er 8 kommentarer og
1 løsning

Nybegynder Login script spørgsmål

Jeg startede på ASP i foregårs og sidder nu med lidt af et problem.

If Request.Form("user") = rs_kunder("Brugernavn") AND Request.Form("password") = rs_kunder("Kodeord") Then

  Session("kundelogin") = "yes"
  Session.Timeout = 30
  Response.Redirect("kundeindex.asp")
 
Else

  Session("kundelogin") = "no"
  Session.Timeout = 30
  Response.Redirect("kundeloginfailed.asp")

End If

Hvis jeg skriver et brugernavn der eksistere i databasen (Som er en access database) og efterfølgende et FORKERT password så går den til kundeloginfailed.asp som den skal... Hvis jeg skriver et brugernavn som ikke står i databasen og skriver password får jeg en fejl:

Fejltype:
(0x80020009)
Undtagelse opstod.
/login.asp, line 17

Kan afsløre at line 17 er min if sætning.
Hvis jeg skriver et korrekt password (på hvilken som helst af mine brugere) men forkert brugernavn kommer samme fejl..

Dvs. hvis jeg skriver et korrekt brugernavn men forkert password reagere den som den skal, men hvis jeg skriver et forkert brugernavn så gør den ikke.. Det er jo klart et problem med if sætningen fordi den kun vil snakke med databasen og ikke vil reagere på noget andet..

Jeg har nu søgt og søgt herinde og andre sites og kan ikke finde nogen tut eller tidligere spørgsmål til det her problem så derfor opretter jeg nu et her.
Det er lidt en hasteting så jeg giver lidt flere point end den burde være værd ;)
Avatar billede kasperstorm Nybegynder
06. januar 2005 - 13:57 #1
rs_kunder("Brugernavn") eksisterer ikke hvis brugernavnet ikke findes i databasen.
Lav et check på det inden du starter din if sætning !!
Avatar billede kasperstorm Nybegynder
06. januar 2005 - 13:58 #2
Den har ingen værdi...
Avatar billede mortency Nybegynder
06. januar 2005 - 13:59 #3
Du spør etter bruker og passord i databasen.

strSQL = "Select * from dintabell where brukernavn=" & request.form .......
......

'Så lager du..
If rs.EOF Then
  Session("kundelogin") = "yes"
  Session.Timeout = 30
  Response.Redirect("kundeindex.asp")
Else
  Session("kundelogin") = "no"
  Session.Timeout = 30
  Response.Redirect("kundeloginfailed.asp")
End if
Avatar billede skippie Nybegynder
06. januar 2005 - 14:15 #4
Det virker stadigvæk ikke, nu kan jeg kun logge ind hvis jeg angiver forkert brugernavn
Avatar billede skippie Nybegynder
06. januar 2005 - 14:16 #5
strSQL = "SELECT Brugernavn, Kodeord FROM tbl_brugere WHERE Brugernavn='" & Request.Form("user") & "'"

Response.Write(strSQL)
set rs_kunder=Server.CreateObject("ADODB.recordset")

rs_kunder.OPEN strSQL, conn

'If Request.Form("user") = rs_kunder("Brugernavn") AND Request.Form("password") = rs_kunder("Kodeord") Then
If rs_kunder.EOF Then
  Session("kundelogin") = "yes"
  Session.Timeout = 30
  Response.Redirect("kundeindex.asp")
 
Else

  Session("kundelogin") = "no"
  Session.Timeout = 30
  Response.Redirect("kundeloginfailed.asp")

End If
Avatar billede skippie Nybegynder
06. januar 2005 - 14:17 #6
Hov
'If Request.Form("user") = rs_kunder("Brugernavn") AND Request.Form("password") = rs_kunder("Kodeord") Then

Er jo så udkommenteret, bare så vi er enige
Avatar billede mortency Nybegynder
06. januar 2005 - 14:26 #7
txtUsername = Replace(Request.Form("user"), "'", "''")
txtPassword = Replace(Request.Form("pass"), "'", "''")

set rs_kunder=Server.CreateObject("ADODB.recordset")
strSQL = "SELECT Brugernavn, Kodeord FROM tbl_brugere WHERE Brugernavn='" & txtUsername & "' AND passord='" & txtPassword & "'"
Response.Write(strSQL)
rs_kunder.OPEN strSQL, conn

'Ingen treff i databasen
If rs_kunder.EOF OR rs_kunder.BOF Then
  Session("kundelogin") = "no"
  Session.Timeout = 30
  Response.Redirect("kundeloginfailed.asp")
Else
'Treff i databasen
  Session("kundelogin") = "yes"
  Session.Timeout = 30
  Response.Redirect("kundeindex.asp")
End If
Avatar billede mortency Nybegynder
06. januar 2005 - 14:30 #8
Dette her skal virke.


txtUsername = Replace(Request.Form("user"), "'", "''")
txtPassword = Replace(Request.Form("password"), "'", "''")

set rs_kunder=Server.CreateObject("ADODB.recordset")
strSQL = "SELECT Brugernavn, Kodeord FROM tbl_brugere WHERE Brugernavn='" & txtUsername & "' AND Kodeord='" & txtPassword & "'"
Response.Write(strSQL)
rs_kunder.OPEN strSQL, conn

'Ingen treff i databasen
If rs_kunder.EOF OR rs_kunder.BOF Then
  Session("kundelogin") = "no"
  Session.Timeout = 30
  Response.Redirect("kundeloginfailed.asp")
Else
'Treff i databasen
  Session("kundelogin") = "yes"
  Session.Timeout = 30
  Response.Redirect("kundeindex.asp")
End If
Avatar billede skippie Nybegynder
06. januar 2005 - 14:39 #9
Jeg har fået det til at virke, fandt selv fejlene i den første du postede (altså den ovenover dit sidste svar ;) ) og rettede det til, så nu spiller det, mange tak for hjælpen jeg har givet dig dine point :)
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