webForumDet fria alternativet

IsNumeric?!?

8 svar · 283 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Jag har en gästbokstjänst och använder den med följande adress, http://x.gbok.com, där x är siffran man har på sin gästbok och när jag går in på den så får jag felmesset jag har om inte x är en siffra. Har jag skrivit fel i min kod eller äre nåt annat tro?

Just nu funkar inte MySQL databasen ifall nån går in på gbok å tänker kolla.

If Request.QueryString("sida") = "" Then
  IF Right(Request.Servervariables("HTTP_REFERER"),1) = "/" Or Right(Request.Servervariables("HTTP_REFERER"),1) = "\" then  
    GBOK = left(Request.Servervariables("HTTP_REFERER"),Len(Request.Servervariables("HTTP_REFERER"))-1)  
  ELSE  
    GBOK = Request.Servervariables("HTTP_REFERER")  
  END IF  

  IF NOT Trim(GBOK) = "http://www.gbok.com" And NOT Trim(GBOK) = "http://gbok.com" And NOT Trim(GBOK) = "http://gruvsjo.com/gbok" And NOT Trim(GBOK) = "http://www.gruvsjo.com/gbok" then  
    GBOK = Replace(GBOK,".gbok.com","")  
    GBOK = Replace(GBOK,"http://","")  
    GBOK = Replace(GBOK,"www.","")
    If Not IsNumeric(GBOK) Then
       Response.Write "<div align=""center""><br><br><font color=""#000000"" size=""2"">Nu är något riktigt fel! Enligt min kod säger detta att det som står [url]http://[/url]<b>HÄR</b>.gbok.com inte är en siffra!</font></div>"
       Check = False
    Else
       Check = True
    End If
  Else
    Response.Redirect "http://www.gbok.com"
  End If
  GbId = GBOK
Else
  GbId = Request.QueryString("id")
End If
m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

Jag ser inget problem med din kod, IsNumeric borde fungera?
En sak bara - ska du inte köra en funktion på GBOK, i stället för att ha tre stycken Replace()?

Du kan ju också alltid testa med att göra id-numret till ett tal, med Cint()

Dim Idnr
Idnr = Cint(Trim(Request.Querystring("id")))

Din kod ska dock fungera.. :q :q

AsaMedlem sedan dec. 20011 860 inlägg
#3

Du kan ju göra en funktion åt mig ;) hehe!

SKa testa det med Cint och återkommer!

AsaMedlem sedan dec. 20011 860 inlägg
#4

Det är inte där det strular. Det där GbId = Request.QueryString("id") kommer ju när man e på sidan 2. Och då har man ju redan fått fram sidan.

Här strular det:
If Not IsNumeric(GBOK) Then

@ndersMedlem sedan juni 200032 969 inlägg
#5

vad innehåller variabeln då?

Engine^Medlem sedan dec. 20003 887 inlägg
#6
If Request.QueryString("sida") = "" Then
  GBOK = Request.ServerVariables("HTTP_REFERRER")

  If InStr(GBOK, "gbok.com") > 0 Or InStr(GBOK, ".com/gbok") > 0
    Response.Redirect "http://www.gbok.com"
  End If

  objRS  = New RegExp()
  objRS.Global = True
  objRS.IgnoreCase = True
  objRS.Pattern = [^\d]

  GBOK = objRS.Replace(GBOK, "")

  If Not IsNumeric(GBOK) Or GBOK = "" Then
    Response.Write "feeeel..."
    Check = False
  Else
    GbId = GBOK
    Check = True
  End If
Else
  GbId = Request.QueryString("id")
End If
AsaMedlem sedan dec. 20011 860 inlägg
#7

Svar till Anders: Den innehåller en siffra! Det är det som blir kvar efter den gjort alla replace.

SKa testa din version Engine!

ampyMedlem sedan feb. 20011 498 inlägg
#8

Asa skrev:

Här strular det:
If Not IsNumeric(GBOK) Then

Man får antingen ett true-värde eller ett false-värde av IsNumeric-funktionen.

Då borde det väl vara:

If IsNumeric(GBOK) = false then
@ndersMedlem sedan juni 200032 969 inlägg
#9

ampy, de två sätten är exakt likvärdiga och ger samma resultat.

Asa: det jag menade: skriv ut värdet och kontrollera att det innehåller precis det du tror. Om du inte har rensat bort alla andra tecken, så blir det garanterat fel.

Mvh,

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