Hejsan!
Jag har startat en namninsamling och jag har märkt att det är många som missbrukar den och skickar in en massa onödiga namn.. Jag skulle vilja spara allas IP-nummer i databasen så att jag lätt kan spärra dem..
strIP = Request.ServerVariables("REMOTE_ADDR")
strSQL = "SELECT ip FROM namn WHERE ip = '" & strIP & "'"
Set objRS = objConn.Execute(strSQL)
If objRS.EOF Then
strSQL = "INSERT INTO namn (namn, ip) VALUES ('" & Replace(Request.Form("namn"), "'", "''") & "', '" & strIP & "')"
objConn.Execute(strSQL),,128
Else
Response.Write("Hur många namn har du egentligen?")
End If
Set objRS = Nothing
Du får besökares IP-nummer genom att använda servervariablerna i ASP.
<%
Dim ipnr
ipnr = Request.ServerVaraibles("REMOTE_ADDR")
%>
För att sätta in IP-nummer i databasen använder du en SQL-fråga, med denna syntax:
INSERT INTO tabell(ipnr) VALUES('" & ipnr & "')
För att kolla om det spammande IP-numret finns i databasen så kan du använda kod liknande denna:
'anslut till databasen, skapa en anslutning kallad [i]Cn[/i] och ett recordset-objekt kallat [i]Rs[/i].
Dim strSQL, Rs
strSQL = "SELECT ipnr FROM tabell WHERE ipnr='" & ipnr
Set Rs = Cn.Execute(strSQL)
If Rs.EOF Then
'allt okej
Else
skriv ut meddelande om att användaren inte får besöka sidan, eller dyl.
End If
Rs.Close : Set Rs = Nothing
Cn.Close : Set Cn = Nothing
Jag vill att när dom skriver sitt namn i insamlingen så ska deras IP-nummer lagras i databasen med deras namn..
Det finns en egen kolumn i databasen som heter IP..
Helst så ska det vara så att dom inte skall kunna skriva in mer än en gång.. Alltså att jag inte skall behöva spärra just deras IP, utan att det ska spärras automatiskt..
strIP = Request.ServerVariables("REMOTE_ADDR")
strSQL = "SELECT namn FROM namn ORDER BY namn"
Set objRS = objConn.Execute(strSQL)
blnIP = False
If NOT objRS.EOF Then
Do Until objRS.EOF
arrTemp = Split(objRS("namn"), "||")
strNamnIP = arrTemp(1)
If strNamnIP = strIP Then
blnIP = True
Exit Do
End If
objRS.MoveNext
Loop
End If
If NOT blnIP Then
strSQL = "INSERT INTO namn (namn) VALUES ('" & Replace(Request.Form("namn"), "'", "''") & "||" & strIP & "')"
objConn.Execute(strSQL),,128
Else
Response.Write("Hur många namn har du egentligen?")
End If
Set objRS = Nothing
Jag la in koden på sidan som heter "spara_namn.asp"..
Sidan som tar hand om alla andra namn och sparar dem..
Där IP-nummret ska stå i databsen kommer bara en !´"0"..