webForumDet fria alternativet

IP-block

29 svar · 1 394 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

Jag vill ha en IP-block på medlemmar vid inloggning, jag har det så här nu

strAnvNamn = FriendlySQL(Request.Form ("txtUsername"))
strLosen = FriendlySQL(Request.Form ("txtPassword"))
iprs=objConn.Execute("select * from ipblock where username='" & strAnvNamn & "'")
blockatIP = iprs("ip")

If objRS("blockadTill") > Date() then
	Response.Redirect "/main.asp?error=blockad&d="&replace(objRS("blockadTill"),"-","")&""
ElseIf "& IP &" = "& blockatIP &" then
	Response.Redirect "/main.asp?error=blockad&d="&(objRS("ip"))
End If

Får fel om att kolumnen inte heter si och så och att det blir eof och bof, vad gör jag för fel

IP är ip i användartabellen och ip är ipnummer i ip-blocktabellen

emissionMedlem sedan dec. 19996 721 inlägg
#2

Kolla objRS.EOF och bestäm dig för om det är "iprs" eller "objRS" som du vill använda. Datumkontrollen bör du göra direkt i SQL-frågan.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#3

Ska jag har det så här då, är dålig på joins

SQL="SELECT * FROM tblUsers u INNER JOIN ipblock ip ON u.username = ip.username WHERE username = '" & strAnvNamn & "' AND userPass = '" & strLosen & "'"
doggelitoMedlem sedan juni 20003 076 inlägg
#4

Ett litet tips:
Använd inte replace för att formatera datum till sträng som du gör här:

Response.Redirect "/main.asp?error=blockad&d="&replace(objRS("blockadTill"),"-","")&""

Det ställer bara till det om du ändrar språk nån gång (som inte använder "-" i sina datum)
Utan hämta ut siffrorna för sig istället:

Response.Redirect "/main.asp?error=blockad&d= " & year(objRS("blockadTill")) & month(objRS("blockadTill")) & day(objRS("blockadTill"))

RED/
Och eftersom ett recordset är ett objekt så ska du "sätta" det:

Set objRs = objConn....

Och som emission skriver, bestäm dig för om det är iprs eller objRs som gäller! ;)

WebbisNetMedlem sedan feb. 20032 027 inlägg
#5

doggelito skrev:

Ett litet tips:
Använd inte replace för att formatera datum till sträng som du gör här:

Response.Redirect "/main.asp?error=blockad&d="&replace(objRS("blockadTill"),"-","")&""

Det ställer bara till det om du ändrar språk nån gång (som inte använder "-" i sina datum)
Utan hämta ut siffrorna för sig istället:

Response.Redirect "/main.asp?error=blockad&d= " & year(objRS("blockadTill")) & month(objRS("blockadTill")) & day(objRS("blockadTill"))

RED/
Och eftersom ett recordset är ett objekt så ska du "sätta" det:

Set objRs = objConn....

Och som emission skriver, bestäm dig för om det är iprs eller objRs som gäller! ;)

set har jag redan, fick inte med det bara

SET objConn = connect()
SQL="SELECT * FROM tblUsers WHERE username = '" & strAnvNamn & "' AND userPass = '" & strLosen & "'"
Set objRS= objConn.Execute(SQL)

men om jag byter ut min sql här mot joinen jag skrev ovanför, ska det funka då?

emissionMedlem sedan dec. 19996 721 inlägg
#6

Hur ser tabellerna ut?

ElseIf "& IP &" = "& blockatIP &" then

Kolla igenom den if-satsen.... Den kommer aldrig att bli uppfylld

WebbisNetMedlem sedan feb. 20032 027 inlägg
#7

IPblock tabellen
+----------------+----------+
| ip | username |
+----------------+----------+
| 81.233.92.251 | Nallen |
+----------------+----------+

IP i userstabellen är det IP medlemmen loggar in med, det bara uppdateras, där läggs inga rader till

emissionMedlem sedan dec. 19996 721 inlägg
#8

WebbisNet skrev:

IP i userstabellen är det IP medlemmen loggar in med, det bara uppdateras, där läggs inga rader till

Okej, så vilken relevans har IP-numret för själva blockeringen, om man jämför med att bara blockera själva användaren?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#9

användaren kan skaffa nytt konto från samma dator, en ip block är mer effektivt

emissionMedlem sedan dec. 19996 721 inlägg
#10

Så egentligen är det IP:t du vill blocka, och det är användarnamnet som är irrelevant?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#11

ja det är det

emissionMedlem sedan dec. 19996 721 inlägg
#12

Jaha, ja då ska vi inte röra till det med joinar och annat. Sök i block-tabellen (i en egen sökning) efter en aktiv blockering på det aktuella IP:t och blockera om du får en träff.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#13

hur ska jag skriva om koden för att få en effektiv blockfunktion?

denna funkar ju inte

[B]iprs=objConn.Execute("select * from ipblock where username='" & strAnvNamn & "'")[/B]

SET objConn = connect()
SQL="SELECT * FROM tblUsers WHERE username = '" & strAnvNamn & "' AND userPass = '" & strLosen & "'"
Set objRS= objConn.Execute(SQL)
If NOT objRS.EOF THEN 
	Session("userID") = objRS("userID")
	'Session("userID") = objRS("sessionNumber")
	Session("username") = objRS("username")
	Session("inloggningar") = objRS("inloggningar")

if session("userID") = 1 then
objConn.Execute("Update tblUsers SET inloggningar = inloggningar+1 , inloggad = 0, "&_
		"IP= '" & IP & "', Datum = '" & Datum & "'  WHERE userID= 1")
else
		objConn.Execute("Update tblUsers SET Tstamp='"&TDate&"', inloggningar = inloggningar+1 ,poang = poang+0.2, inloggad = "& varInloggad &", "&_
		"IP= '" & IP & "', Datum = '" & Datum & "'  WHERE userID= " & Session("userID") &"")
end if

Response.Cookies("webbisnet")("UserID") = objRS("userID") 
Response.Cookies("webbisnet").Expires = dateadd("n",90,now)

[B]If objRS("blockadTill") > Date() then
Response.Redirect "/main.asp?error=blockad&d= " & year(objRS("blockadTill")) & month(objRS("blockadTill")) & day(objRS("blockadTill"))
ElseIf "& IP &" = "& blockatIP &" then
	Response.Redirect "/main.asp?error=blockad&d="&(objRS("ip"))
End If[/B]
@ndersMedlem sedan juni 200032 969 inlägg
emissionMedlem sedan dec. 19996 721 inlägg
#15

1. Nu söker du ju på användarnamn i ipblock. Det var ju inte intressant kom vi fram till.
2. iprs används aldrig.
3. ElseIf:en är fortfarande fel. Skaffa en texteditor med kodfärgning så ser du vad som är fel.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#16

tips på bra editor med syntaxfärgning, hade ett bra prog en gång för asp där man kunde ladda upp till servern så fort man sparade dokumentet men kommer inte ihåg var det hette, textpad är inte så bra på färgning

WebbisNetMedlem sedan feb. 20032 027 inlägg
#17

Då ska dessa rader fungera bättre

Set IPBlockRS=ObjConn.Execute("Select ip from ipblock where ip="&IP)
If not IPBlockRS.EOF Then
	Response.Redirect "/main.asp?error=blockad&d="&(objRS("ip"))
End If
@ndersMedlem sedan juni 200032 969 inlägg
#18

Då ska dessa rader fungera bättre

Beror väl på vad man menar med bättre, men nej, det bör inte fungera.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#19

Hur ska jag skriva om koden?

@ndersMedlem sedan juni 200032 969 inlägg
#20

Det märker du när du ser felmeddelandet du får av ditt kodförslag. =)

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