webForumDet fria alternativet

Jobbigt fel =(

ASP

12 svar · 389 visningar · startad av sudden

Medlem sedan okt. 2002341 inlägg
Frågan#1

Hej!
Jag får följande felmess:

Feltyp:
ADODB.Recordset (0x800A0BB9)
Parametrarna är felaktiga, ligger utanför tillåtet intervall eller skapar en inbördes konflikt.
/suddens/70 - tals mat/index.asp, line 75

På den här koden:

 <%end if
if Request.QueryString("page") = "login_check" then
 set conn = server.CreateObject("adodb.connection")
 conn.Open "Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;Stmt=;Database=DatabaseMAT;Uid=root;Pwd=;" 
if Request.Form("pass") = "" then Response.Redirect("index.asp")
 end if
set rs = server.CreateObject("adodb.recordset")
SQL = "select UserID from tblUser Where losen = '" & request.form("pass") & "'"
 rs.Open SQL, conn, 3, 3
if rs.eof then
session("login") = false
  Response.Redirect("index.asp")
  
   else
 session("login") = True
 session("USERID") = rs("UserID")
'rätt lösen, skicka användaren till den skyddade sidan
 Response.Redirect("index.asp?page=main")
  end if   
set conn = nothing
 conn.Close
  set rs = nothing

IF Request.QueryString("page") = "main" then

end if
%>

Vad kan vara fel?
Tacksam för svar :e

Medlem sedan dec. 20003 887 inlägg
#2

Vilken rad är det som genererar felet?

Medlem sedan okt. 2002341 inlägg
#3

rs.Open SQL, conn, 3, 3

Medlem sedan mars 20021 889 inlägg
#4

Du kopplar till databasen flera gånger.

set rs = server.CreateObject("adodb.recordset")

:)

Medlem sedan okt. 2002341 inlägg
#5

Men det är ju skillnad på Recordset och connection...eller? vad menar du?

Medlem sedan juni 200032 967 inlägg
#6

Är du säker på att Request.QueryString("page") har värdet login_check? Om det inte är det så skapas inte ditt connectionobjekt.

Medlem sedan okt. 2002341 inlägg
#7

Japp...hundra % säker!!

Medlem sedan mars 20021 889 inlägg
#8

Ah, glöm vad jag sa. Jag vet faktiskt inte vad jag snackade om. :r ;)

Medlem sedan dec. 20002 526 inlägg
#9
if Request.Form("pass") = "" then Response.Redirect("index.asp")
else
set rs = server.CreateObject("adodb.recordset")
SQL = "select UserID from tblUser Where losen = '" & request.form("pass") & "'"
 rs.Open SQL, conn, 3, 3
'..... resten av koden.... avsluta if-satsen langst ner

kanns mer ratt? ;)

Medlem sedan okt. 2002341 inlägg
#10

Nu får jag :

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0400)
Programsats förväntas.
/suddens/70 - tals mat/index.asp, line 92
end if

Beror väl på att mina end if är placerade lite fel!?
Någon som kan checka upp det? =)

if Request.QueryString("page") = "login_check" then
 set conn = server.CreateObject("adodb.connection")
 conn.Open "Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;Stmt=;Database=DatabaseMAT;Uid=root;Pwd=;" 
if Request.Form("pass") = "" then Response.Redirect("index.asp")
 else
set rs = server.CreateObject("adodb.recordset")
SQL = "select UserID from tblUser Where losen = '" & request.form("pass") & "'"

rs.Open SQL, conn, 3, 3
if rs.eof then
session("login") = false
  Response.Redirect("index.asp")
  
   else
 session("login") = True
 session("USERID") = rs("UserID")
'rätt lösen, skicka användaren till den skyddade sidan
 Response.Redirect("index.asp?page=main")
  end if 
  
set conn = nothing
 conn.Close
  set rs = nothing
end if
  end if
Medlem sedan dec. 200012 464 inlägg
#11

Nu kontrollerar du enbart att det finns ett lösenord som stämmer, du kontrollerar inte att det stämmer med userid också.

if Request.Form("pass") = "" then Response.Redirect("index.asp")
 [b][red]else 'ta bort detta else[/red][/b]
Medlem sedan okt. 2002341 inlägg
#12

får samma fel...ska jag sätta ett end if där istället?

Medlem sedan dec. 20003 887 inlägg
#13
if Request.QueryString("page") = "login_check" then
    set conn = server.CreateObject("adodb.connection")
    conn.Open "Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;" & _
    "Stmt=;Database=DatabaseMAT;Uid=root;Pwd=;" 

    if Request.Form("pass") = "" then Response.Redirect("index.asp")

    set rs = server.CreateObject("adodb.recordset")
    SQL = "select UserID from tblUser Where losen = '" & request.form("pass") & "'"
    rs.Open SQL, conn, 3, 3

    if rs.eof then
        session("login") = false
        Response.Redirect("index.asp")
    else
        session("login") = True
        session("USERID") = rs("UserID")
        'rätt lösen, skicka användaren till den skyddade sidan
        Response.Redirect("index.asp?page=main")
    end if 

    set rs = nothing

    set conn = nothing
    conn.Close
end if

Men som LarsG säger, så är det här inget vidare logincheck. Du ska ju kolla om lösenordet stämmer för användaren och inte hämta ett användarnamn om det finns ett lösenord för det.

SQL = "select UserID from tblUser Where losen = '" & request.form("pass") & _
"' and UserName = '" & request.form("username") & "'"

typ...

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)