webForumDet fria alternativet

inloggningsproblem till mysql databas

ASP

2 svar · 250 visningar · startad av golgata

Medlem sedan maj 2000131 inlägg
Frågan#1

Varför får jag upp följande felmeddelande när jag försöker logga in.

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

/community/login_check.asp, line 24

Har följande kod.

001: <% option explicit %>
002:
003: <!--#include file="conn.asp"-->
004: <%
005: 'DIM
006: Dim iLoginFusk
007: Dim RecSet, SQL
008: ' Detta har Jonas lagt till 011019
009: ' iLoginFusk är antal minuter innan man kan logga in igen
010: ' och få inloggningen i statistiken. 60 = 1 timme alltså.
011:
012: iLoginFusk = 60
013:
014: Set RecSet = Server.CreateObject("ADODB.Recordset")
015:
016: SQL = "SELECT * FROM comm_members WHERE status = 'online'"
017: RecSet.Open SQL, Connect, 3, 3
018:
019: '----- Rensar bort sånna som inte loggat ut korrekt.. -------
020:
021: Do Until RecSet.EOF
022:
023: If DateDiff("n", RecSet("datum"), Now) > 3 Then
024: RecSet("status") = "offline"
025: RecSet.Update
026: End If
027:
028: RecSet.MoveNext
029: Loop
030:
031: RecSet.Close
032:
033: '---------------- SLUT PÅ UTRENSNINGEN ------------------
034:
035: SQL = "SELECT * FROM comm_members WHERE username='" &Request.Form("username")& "' AND losen='" &Request.Form("losen")& "'"
036: RecSet.Open SQL, Connect, 3, 3
037:
038: if RecSet.EOF = false Then
039:
040: RecSet("status") = "online"
041: ' Motverkar loginfusk
042:
043: If DateDiff("n", Recset("datum"), Now()) > iLoginFusk Then
044: Recset("antal") = RecSet("antal") + 1
045: End If
046: ' Slut fusk
047:
048: RecSet("datum") = Now
049:
050:
051: RecSet.Update
052: Session("namn") = RecSet("fnamn")
053: Session("login") = "ok"
054: Session("id") = RecSet("id")
055: Session("epost") = RecSet("epost")
056: Session("bild") = Recset("bild")
057: Session.TimeOut = 3 '<-- Kontrollera
058:
059: RecSet.Close
060: Set RecSet = nothing
061:
062: Response.Redirect "frame.asp"
063:
064: End If
065:
066:
067: RecSet.Close
068: Set RecSet = nothing
069: Session("meddelande") = "Tyvärr! Fel användarnamn eller lösenord. Försök igen!"
070: Response.Redirect "../default.asp"
071: %>

Medlem sedan juni 200032 967 inlägg
#2
  1. Sökfunktionen gav dig inga tips på felmeddelandet?
  2. Använd [kod]-taggar.
  3. Jag är osäker på om MySQL-providern stöder uppdatering på det sättet som du gör. Använd en UPDATE-SQL-fråga istället.
Medlem sedan dec. 20003 887 inlägg
#3

Detta kan väl fungera kanske...

<% option explicit %> 

<!--#include file="conn.asp"--> 
<% 
Dim iLoginFusk 
Dim RecSet, SQL 
' Detta har Jonas lagt till 011019 
' iLoginFusk är antal minuter innan man kan logga in igen 
' och få inloggningen i statistiken. 60 = 1 timme alltså. 

iLoginFusk = 60 

Set RecSet = Server.CreateObject("ADODB.Recordset") 

SQL = "SELECT id FROM comm_members WHERE status = 'online'" 
RecSet.Open SQL, Connect, 3, 3 

'----- Rensar bort sånna som inte loggat ut korrekt.. ------- 

Do Until RecSet.EOF 
  If DateDiff("n", RecSet("datum"), Now) > 3 Then 
    SQL = "UPDATE comm_members SET status = 'offline' WHERE id = " & RecSet("id")
    Connect.Execute SQL, , 128
  End If 

  RecSet.MoveNext 
Loop 

RecSet.Close 

'---------------- SLUT PÅ UTRENSNINGEN ------------------ 

strUsername = Replace(Request.Form("username"), "'", "''")
strPassword = Replace(Request.Form("losen"), "'", "''")

SQL = "SELECT status, antal, datum, fnamn, id, epost, bild FROM comm_members " & _
      "WHERE username = '" & strUsername & "' AND losen = '" & strPassword & "'" 
      
RecSet.Open SQL, Connect, 3, 3 

If Not RecSet.EOF Then 
  SQL = "UPDATE comm_members SET status = 'online' WHERE id = " & RecSet("id")
  Connect.Execute SQL, , 128

  ' Motverkar loginfusk 
  If DateDiff("n", RecSet("datum"), Now()) > iLoginFusk Then 
    SQL = "UPDATE comm_members SET antal = antal + 1 WHERE id = " & RecSet("id")
    Connect.Execute SQL, , 128
  End If
  ' Slut fusk 

  SQL = "UPDATE comm_members SET datum = NOW() WHERE id = " & RecSet("id")
  Connect.Execute SQL, , 128

  Session("namn") = RecSet("fnamn") 
  Session("login") = "ok" 
  Session("id") = RecSet("id") 
  Session("epost") = RecSet("epost") 
  Session("bild") = Recset("bild") 
  Session.Timeout = 3 '<-- Kontrollera 

  RecSet.Close 
  Set RecSet = Nothing 

  Response.Redirect "frame.asp" 
End If 

RecSet.Close 
Set RecSet = Nothing 

Session("meddelande") = "Tyvärr! Fel användarnamn eller lösenord. Försök igen!" 
Response.Redirect "../default.asp" 
%>
259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)