webForumDet fria alternativet

Inloggnings problem

11 svar · 596 visningar · startad av Biasse

BiasseMedlem sedan aug. 2003480 inlägg
#1

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
#2

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
#3

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
#4

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
#5

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
#6

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
voigtann1Medlem sedan juni 20019 519 inlägg
#7

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
#8

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
#9

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
#10

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
#11

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
#12

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

136 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)