Kan nån säga varför den här koden inte verifierar användaren och skickar vidare?
<%
'Deklarera några av variablerna
Dim strAnvNamn, strLosen, conn, RS
'Hämta info från formulären
strAnvNamn = Trim(Request.Form("txtUsername"))
strAnvNamn = Replace(strAnvNamn, Chr(39), Chr(34)) ' <== Byt ' mot "
strLosen = Trim(Request.Form("txtPassword"))
strLosen = Replace(strLosen, Chr(39), Chr(34)) ' <== Byt ' mot "
'Öppna en koppling till DB
SET Conn = System_Main()
'Kör SQL och sätt ett RecordSet
Dim SQL
SQL = "SELECT * FROM tblCommunity WHERE username = '" & strAnvNamn _
& "' AND password = '" & strLosen & "'"
Set RS= Server.CreateObject("ADODB.RecordSet")
RS.Open SQL, Conn, 3, 3
'Sätt Sessionsvariabler
If NOT RS.EOF THEN
Session("inloggad") = True
Session("ID") = RS("ID")
Session("username") = RS("username")
'Uppdatera databasen
Dim Update
conn.Execute("Update tblCommunity SET inloggad = True WHERE ID= " & RS("ID") &"")
'Kolla om man ska vidare eller komma till en errorsida
Response.Redirect "/community/index.asp"
Else
Response.Redirect "/community/error.asp"
End If
conn.Execute(SQL)
strUser = " & RS(username) & "
RS.Close
Set RS = Nothing
conn.Close
Set conn = Nothing
%>
På vilket sätt fungerar det inte? Vad händer? Felmeddelande? Hur ser utskriven SQL-fråga ut?
- - - - - -
*) Du bör inte byta ut apostrofer mot citationstecken. Escape:a de bara, genom att byta ut en till två.
*) Du skriver Dim Update men använder aldrig den variabeln. Släng bort.
*) Under dina response.redirect ser det ut så här:
conn.Execute(SQL)
strUser = " & RS(username) & "
Jag förstår inte varför du bara exekverar din select-fråga igen (släng bort), och den undre raden, vad använder du den till? Om du senare i koden ska använda den variabeln, då borde den se ut så här:
På vilket sätt fungerar det inte? Vad händer? Felmeddelande? Hur ser utskriven SQL-fråga ut?
- - - - - -
*) Du bör inte byta ut apostrofer mot citationstecken. Escape:a de bara, genom att byta ut en till två.
*) Du skriver Dim Update men använder aldrig den variabeln. Släng bort.
*) Under dina response.redirect ser det ut så här:
conn.Execute(SQL)
strUser = " & RS(username) & "
Jag förstår inte varför du bara exekverar din select-fråga igen (släng bort), och den undre raden, vad använder du den till? Om du senare i koden ska använda den variabeln, då borde den se ut så här:
strUser = RS(username)
Släng annars bort även den raden.
Jag blir bara redirectad tillbaka till inloggningsformen, trots att det inte står nånstans i koden, det gör att jag inte kan få felmeddelande och eftersom jag inte har nån html i koden så går det inte att skriva ut satsen
det gör att jag inte kan få felmeddelande och eftersom jag inte har nån html i koden så går det inte att skriva ut satsen
Hmmmm...
Var finns inloggningsformuläret? Är det all kod på sidan?
- - - - - -
Jag har förenklat din kod en aning.
<%
'Deklarera några av variablerna
Dim strAnvNamn, strLosen, conn, RS
'Hämta info från formulären
strAnvNamn = Replace(Trim(Request.Form("txtUsername")), "'", "''")
strLosen = Replace(Trim(Request.Form("txtPassword")), "'", "''")
'Öppna en koppling till DB
SET Conn = System_Main()
'Kör SQL och sätt ett RecordSet
Dim SQL
SQL = "SELECT * FROM tblCommunity WHERE username = '" & strAnvNamn _
& "' AND password = '" & strLosen & "'"
[b]Response.write SQL
Response.End[/b]
Set RS= Conn.Execute(SQL)
'Sätt Sessionsvariabler
If NOT RS.EOF THEN
Session("inloggad") = True
Session("ID") = RS("ID")
Session("username") = RS("username")
'Uppdatera databasen
conn.Execute("Update tblCommunity SET inloggad = True WHERE ID= " & RS("ID"))
'Kolla om man ska vidare eller komma till en errorsida
Response.Redirect "/community/index.asp"
Else
Response.Redirect "/community/error.asp"
End If
RS.Close
Set RS = Nothing
conn.Close
Set conn = Nothing
%>
När jag nu skriver ut satsen får jag SELECT * FROM tblCommunity WHERE username = 'guest' AND password = 'guest' och värdena hänger med fast jag fortfarande bara kommer tillbaka till inloggningsformen. Jag har loginform.asp som skickas till login.asp för verifiering