För att spärra ett visst ipnummer så använder jag mig av följande:
<%
visitorIP = Request.ServerVariables("REMOTE_ADDR")
If visitorIP = "ipnumret" Then
Response.Redirect("..\bannad.asp")
end if
%>
Jaga undrar ifall det finns ngt sätt där man med hjälp av ett formulär och databas kan genom att fylla i formuläret på ett ipnummer så läggs den till i scriptet, i och med det kunna banna flera personer med hjälp av databasen...
set connect = server.createobject("adodb.connection")
connect.open "dsn"
'
'kontrollera om det är en ny adress
'
sql = "select 1 from bannadAdress where ipNummer = '" & request.form("IP") &"'"
set rs = connect.execute(sql)
if rs.eof then
sql = "insert into bannadAdress(ipNummer) values ('" & request.form("IP") & "')"
connect.execute sql,,128
end if
rs.close
set rs = nothing
connect.close
set connect = nothing
coh sedan för att se om en adress inte är tillåten
set connect = server.createobject("adodb.connection")
connect.open "dsn"
'
'kontrollera om det är en ny adress
'
sql = "select 1 from bannadAdress where ipNummer = '" & request.form("IP") & "'"
set rs = connect.execute(sql)
if not rs.eof then
rs.close
set rs = nothing
connect.close
set connect = nothing
Response.Redirect("..\bannad.asp")
end if
------------------ essentitia preter non sans multiplicandum
Hmmm... LarsG, ngt knasa... allt går alldeles utmärkt, ipnummret skrivs till databasen osv.
jag har två kolumner där, ID och ipNummer, men respons.redirecten fungerar inte. så här ser koden ut:
<!-- #include file="..\adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("..\db.mdb")
'kontrollera om det är en ny adress
'
sql = "select 1 from bannadAdress where ipNummer = '" & request.form("IP") & "'"
set rs = connect.execute(sql)
if not rs.eof then
rs.close
set rs = nothing
connect.close
set connect = nothing
Response.Redirect("..\bannad.asp")
end if
%>
jag ändrade bara som du ser anslutningen till databasen från din urspungliga kod...
LarsG, jag satt och pilla lite med koden du gav mig men kom inte fram till ngt smidigt, det är så här att jag vill vidare utveckla koden, och göra detta:
Att då man lägger till ett ip så ska den bara finnas i databasen i 1vecka och sedan försvinner den automatiskt...
Jo, du behöver en extra kolumn, tex slutDatum som är av typen date
alter table bannadAdress add slutdatum date
Sen så kan du lägga in det slutdatum när du lagrar adressen. Samtidigt så kan du ju lägga in kod som tar bort alla gamla
if rs.eof then
sql = "insert into bannadAdress(ipNummer,slutDatum) values ('" & request.form("IP") & "',dateadd('d',7,now())"
connect.execute sql,,128
end if
sql = "delete from bannadAdress where slutdatum < now()"
connect.execute sql,,128
Sen så behöver du lägga till ett villkor till när du kollar vilka som är bannade
sql = "select 1 from bannadAdress where ipNummer = '" & Request.ServerVariables("REMOTE_ADDR") & "' and slutDatum >= now()"
------------------ essentitia preter non sans multiplicandum