BiasseMedlem sedan aug. 2003480 inlägg Jag har ställt till det för mig själv och jag vet inte vad jag gjort för fel. Men min kontroll vill inte godkänna mig mer och ser inte vad jag gör för fel. nam,n & pass är rätt ändå kommer jag bara till admin.asp :r :q
<%
Function secure(txt)
txt = Replace(txt, "'", "''")
secure = txt
End Function
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("admin.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
anvNamn = secure(Request.Form("anvnamn"))
losenord = secure(Request.Form("losenord"))
SQL = "SELECT niva, anvnamn FROM user WHERE anvnamn='" & anvnamn & "' AND losenord='" & losenord &"'"
RecSet.Open SQL, Connect, 3, 3
If not RecSet.EOF Then
Response.Cookies("anvnamn") = RecSet("anvnamn")
Response.Cookies("niva") = RecSet("niva")
If RecSet("niva")="1" Then
strPage="index.asp?action=inne"
elseIf RecSet("niva")="2" Then
strPage="index.asp?action=inne"
End If
RecSet.Close : set recset = nothing
Connect.Close : set connect = nothing
End If
Response.Redirect "index.asp"
%>
@ndersMedlem sedan juni 200032 969 inlägg Du får se till att subtypskonvertera i dina jämförelser. Tal skall jämföras som tal. Ex:
If Cint(RecSet("niva")) = 1 Then
BiasseMedlem sedan aug. 2003480 inlägg Den villändå till index.asp?
If Cint(RecSet("niva")) = 1 Then
strPage="index.asp?action=inne?action=inne"
elseIf Cint(RecSet("niva"))="2" Then
strPage="index.asp?action=inne?action=inne"
ZaimanMedlem sedan dec. 20014 239 inlägg Ja du skickar den till index.asp
Du får göra en
response.redirect strPage
istället om du ska till "index.asp?action..."
Och det i din if sats.
BiasseMedlem sedan aug. 2003480 inlägg Om jag ändrar
Response-objekt, ASP 0158 (0x80004005)
En URL krävs.
If Cint(RecSet("niva")) = "1" Then
strPage="index.asp?action=inne"
elseIf Cint(RecSet("niva")) = "2" Then
strPage="index.asp?action=inne"
End If
End If
RecSet.Close : set recset = nothing
Connect.Close : set connect = nothing
Response.Redirect strPage
OveRRidEMedlem sedan feb. 200112 078 inlägg Isåfall är "strPage" tom. Är du säker på att "RecSet("niva")" innehåller 1 eller 2?
/red. Förresten, du har ett typkonverteringsfel. Cint(1) kan aldrig bli samma som "1", eftersom det senare är en sträng:
If Cint(RecSet("niva")) = 1 Then
strPage="index.asp?action=inne"
elseIf Cint(RecSet("niva")) = 2 Then
strPage="index.asp?action=inne"
End If
För den träffar ingen av dina If frågor.
Du konvertera för det första om en variabel till Int, och sen kollar du om den är lika med en sträng
1 = "1" är inte samma sak.
BiasseMedlem sedan aug. 2003480 inlägg tabell - user
user_id=1
anvnamn=user1
losenord=test
niva=1
user_id=2
anvnamn=user2
losenord=test
niva=2
BiasseMedlem sedan aug. 2003480 inlägg I min värld är 1=1 hehe men hur ska jag göra för nu funkar det inte vad jag än försöker. :=)
LedelMedlem sedan dec. 2004736 inlägg Ja, 1=1 men 1!="1".
Om du konverterar något till en integer med hjälp av CInt(x), kan du inte jämföra det mot en sträng! Du använder nämligen inte " runt tal. Alltså:
if minString = "innehåll" then
eller
if minInteger = 1 then
beroende på om det är en sträng eller ett tal.
OveRRidEMedlem sedan feb. 200112 078 inlägg
Biasse skrev:
I min värld är 1=1 hehe men hur ska jag göra för nu funkar det inte vad jag än försöker. :=)
Jag gav ju ett kodförslag. Har du testat det?
EclipseMedlem sedan juli 20003 825 inlägg
Biasse skrev:
I min värld är 1=1 hehe men hur ska jag göra för nu funkar det inte vad jag än försöker. :=)
Lär dig skilja på strängar (text) och tal. Det hjälper dig mycket!
******
Studera skillnaden mellan dessa exempel:
tmp1 = 34
tmp2 = 6
response.write tmp1 + tmp2
tmp1 = "34"
tmp2 = "6"
response.write tmp1 + tmp2