AsaMedlem sedan dec. 20011 860 inlägg 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
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 Du kan ju göra en funktion åt mig ;) hehe!
SKa testa det med Cint och återkommer!
AsaMedlem sedan dec. 20011 860 inlägg 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 vad innehåller variabeln då?
Engine^Medlem sedan dec. 20003 887 inlägg 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 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
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 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,