Avatar billede musti776 Nybegynder
22. september 2003 - 22:07 Der er 17 kommentarer og
1 løsning

Bad words filter og send ip til db

Hej. Jeg har før fået hjælp fra nogle eksperter om et "bad words filter" og ip ban system, og det virkede også fint, men nu prøver jeg at tilpasse de samme koder til en anden gæstebog men det virker ikke helt....

Bad words filter kode:
<%
str = gaestebog.Fields.Item("besked").Value

ulovligeord = "fuck|pis|fucker"
Set regEx = New RegExp
regEx.Global = true
regEx.IgnoreCase = True

regEx.Pattern = "(^|[^a-z])" & ulovligeord & "([^a-z]|$)"
str = regEx.Replace (str, "$1xxx$2")
Set regEx = Nothing

Response.Write str
%>

Kode hvor ip bliver sendt til db når personen skriver besked:
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ", Ip) values (" & MM_dbValues & ",'"&Request.ServerVariables("REMOTE_ADDR")&"')"

Kode i den nye gæstebogen:
<%

if Request.QueryString("islem") <> "ekle" then
%>

     
     
<script language="javascript">
function yolla(){
var isim=document.misafir.isim.value;
var mail=document.misafir.mail.value;
var yer=document.misafir.yer.value;
var notu=document.misafir.notu.value;

if (isim=="")
{
alert("Lütfen adinizi ekleyin")
document.misafir.isim.focus()
return false
        }

if (mail==""){
        alert("Lütfen E-Mail ekleyin.");
        document.misafir.mail.focus()
        return false }
       
if (mail.indexOf('@', 0) == -1 || mail.indexOf('.', 0) == -1){
        alert("E-Mail gecersiz.");
document.misafir.mail.focus()
return false
            }       

if (yer=="")
{
alert("Hangi ülkeden yazdiginizi belirtin.")
document.misafir.yer.focus()
return false
        }
       
if (notu=="")
{
alert("Mesajinizi ekleyin")
document.misafir.notu.focus()
return false
        }
}
</script>

<table width="100%" border="0" cellspacing="1" cellpadding="1" bgcolor=Gainsboro height="400">

<form action="default.asp?modul=defter&islem=ekle"  name="misafir" onsubmit="return yolla()" method=post>

<tr height=100 align=center>
<td align=center colspan=2 bgcolor=#ffcc99>

  <table width="100%" border="0" cellspacing="0" cellpadding="4" bgcolor=Gainsboro>
    <tr>
      <td align=right>
      <font size=2> isim :</font>&nbsp;
      <INPUT type="text" name="isim" maxlength=30 size=20 style="border-style: solid; border-width: 1; font-size :

9pt"><br>
      <font size=2>E-Mail :</font>&nbsp;
      <INPUT type="text" name="mail"  maxlength=40 size=20 style="border-style: solid; border-width: 1; font-size :

9pt"><br>
      <font size=2>Yer :</font>&nbsp;
      <INPUT type="text" name="yer" maxlength=30 size=20 style="border-style: solid; border-width: 1; font-size :

9pt"><br><br>
      <INPUT type="submit" value="Deftere Ekle" id=submit1 name=submit1 style="border-style: solid; border-width: 1;

font-size : 9pt">
      </td>
      <td>
      <TEXTAREA rows=8 cols=45 name="notu" style="border-style: solid; border-width: 1; font-size : 9pt">Mesaj</TEXTAREA>
      </td>
    </tr>
  </table>
   
  </td>
</tr>

</form>


<%
end if




Dim sayfaIci, mconn, mrs, msql, sayac, Sayfalar, gastNot

sayfaIci = 12
if request("seite")="" then
    sayfa = 1
else
    sayfa = cint(request.querystring("seite"))
end if

Set mConn = Server.CreateObject("ADODB.Connection")
Set mRs = Server.CreateObject("ADODB.Recordset")
   
mConn.Open myDb
   
mSQL = "select * from gast order by id desc"
   
mRs.Open msql, mconn, 1, 3


if Request.QueryString("islem") = "ekle" then

    gastNot = left(Request.Form("notu"), 600)
    gastNot = replace(gastNot, "<", "x")
    gastNot = replace(gastNot, ">", "x")
    gastNot = replace(gastNot, vbcrlf, "<br>")
   
   
    mRs.AddNew
    mrs.Fields("name") = left(Request.Form("isim"), 20)
    mrs.Fields("email") = left(Request.Form("mail"), 30)
    mrs.Fields("ort") = left(Request.Form("yer"), 20)
    mrs.Fields("text") = gastNot
    mrs.Update
   
    Response.Redirect "default.asp?modul=defter"
   

else

    mRS.PageSize = sayfaIci
    mRS.CacheSize = SayfaIci
    mRS.AbsolutePage = sayfa

    Sayfalar = mRS.PageCount

    sayac = 0



Do While sayac < SayfaIci And Not mRS.EOF
%>
<tr bgcolor=#fffff9><td  valign=top width="100"><img src='img/right.gif' border=0 align=middle> <b><font size=2 

color=DarkViolet><a href="mailto:<%=mrs("email")%>"><%=mrs("name")%></a></font></b><br><font

size=1><%=mrs("datum")%></font><br><font size=1><%=mrs("ort")%></font>
</td>
<td width="80%"><font size=2><%=mrs("text")%>
</font></td></tr>
     
<%
Sayac = Sayac + 1
mRs.MoveNext
loop

response.write "<tr><td colspan=2 Align='center'  height='100%' width='100%' valign=bottom bgcolor='#ffffff'><font size=1

color=black><b>[Toplam: " & mrs.recordcount & "]</b> " & " .. Sayfalar :"
for i=1 to Sayfalar step 1
  if sayfa = i then
        Response.Write "<font size=1><b> "&i&", </b></font>"
  else
    response.write "<a href='default.asp?modul=defter&seite="&i&"'><font size=1><b>" & i & "</b></font></a>,&nbsp;"
  end if
next


%>   
</font></td></tr>     
       
      </table>

<%

mrs.Close
Set mrs = nothing
mconn.Close
set mconn = nothing

end if
%>

Kan nogle få de koder til at passe til den nye gæstebog
Avatar billede musti776 Nybegynder
22. september 2003 - 22:27 #1
....
Avatar billede juhlemanden Nybegynder
22. september 2003 - 22:52 #2
Hejsa igen :O)
er ikke så stærk i regex, men hvis den kode du har fået virke burde du kunne bruge følgende...


<%

if Request.QueryString("islem") <> "ekle" then
%>

     
     
<script language="javascript">
function yolla(){
var isim=document.misafir.isim.value;
var mail=document.misafir.mail.value;
var yer=document.misafir.yer.value;
var notu=document.misafir.notu.value;

if (isim=="")
{
alert("Lütfen adinizi ekleyin")
document.misafir.isim.focus()
return false
        }

if (mail==""){
        alert("Lütfen E-Mail ekleyin.");
        document.misafir.mail.focus()
        return false }
       
if (mail.indexOf('@', 0) == -1 || mail.indexOf('.', 0) == -1){
        alert("E-Mail gecersiz.");
document.misafir.mail.focus()
return false
            }       

if (yer=="")
{
alert("Hangi ülkeden yazdiginizi belirtin.")
document.misafir.yer.focus()
return false
        }
       
if (notu=="")
{
alert("Mesajinizi ekleyin")
document.misafir.notu.focus()
return false
        }
}
</script>

<table width="100%" border="0" cellspacing="1" cellpadding="1" bgcolor=Gainsboro height="400">

<form action="default.asp?modul=defter&islem=ekle"  name="misafir" onsubmit="return yolla()" method=post>

<tr height=100 align=center>
<td align=center colspan=2 bgcolor=#ffcc99>

  <table width="100%" border="0" cellspacing="0" cellpadding="4" bgcolor=Gainsboro>
    <tr>
      <td align=right>
      <font size=2> isim :</font>&nbsp;
      <INPUT type="text" name="isim" maxlength=30 size=20 style="border-style: solid; border-width: 1; font-size : 9pt"><br>
      <font size=2>E-Mail :</font>&nbsp;
      <INPUT type="text" name="mail"  maxlength=40 size=20 style="border-style: solid; border-width: 1; font-size : 9pt"><br>
      <font size=2>Yer :</font>&nbsp;
      <INPUT type="text" name="yer" maxlength=30 size=20 style="border-style: solid; border-width: 1; font-size : 9pt"><br><br>
      <INPUT type="submit" value="Deftere Ekle" id=submit1 name=submit1 style="border-style: solid; border-width: 1; font-size : 9pt">
      </td>
      <td>
      <TEXTAREA rows=8 cols=45 name="notu" style="border-style: solid; border-width: 1; font-size : 9pt">Mesaj</TEXTAREA>
      </td>
    </tr>
  </table>
   
  </td>
</tr>

</form>


<%
end if




Dim sayfaIci, mconn, mrs, msql, sayac, Sayfalar, gastNot

sayfaIci = 12
if request("seite")="" then
    sayfa = 1
else
    sayfa = cint(request.querystring("seite"))
end if

Set mConn = Server.CreateObject("ADODB.Connection")
Set mRs = Server.CreateObject("ADODB.Recordset")
   
mConn.Open myDb
   
mSQL = "select * from gast order by id desc"
   
mRs.Open msql, mconn, 1, 3


if Request.QueryString("islem") = "ekle" then

    gastNot = left(Request.Form("notu"), 600)
    gastNot = replace(gastNot, "<", "x")
    gastNot = replace(gastNot, ">", "x")
    gastNot = replace(gastNot, vbcrlf, "<br>")
   


        ulovligeord = "fuck|pis|fucker"
        Set regEx = New RegExp
        regEx.Global = true
        regEx.IgnoreCase = True

        regEx.Pattern = "(^|[^a-z])" & ulovligeord & "([^a-z]|$)"
        gastNot = regEx.Replace (gastNot, "$1xxx$2")
        Set regEx = Nothing


   
    mRs.AddNew
    mrs.Fields("name") = left(Request.Form("isim"), 20)
    mrs.Fields("email") = left(Request.Form("mail"), 30)
    mrs.Fields("ort") = left(Request.Form("yer"), 20)
    mrs.Fields("text") = gastNot
    mrs.Update
   
    Response.Redirect "default.asp?modul=defter"
   

else

    mRS.PageSize = sayfaIci
    mRS.CacheSize = SayfaIci
    mRS.AbsolutePage = sayfa

    Sayfalar = mRS.PageCount

    sayac = 0



Do While sayac < SayfaIci And Not mRS.EOF
%>
<tr bgcolor=#fffff9><td  valign=top width="100"><img src='img/right.gif' border=0 align=middle> <b><font size=2  color=DarkViolet><a href="mailto:<%=mrs("email")%>"><%=mrs("name")%></a></font></b><br><font size=1><%=mrs("datum")%></font><br><font size=1><%=mrs("ort")%></font>
</td>
<td width="80%"><font size=2> <%=mRs("text")%></font></td></tr>
     
<%
Sayac = Sayac + 1
mRs.MoveNext
loop

response.write "<tr><td colspan=2 Align='center'  height='100%' width='100%' valign=bottom bgcolor='#ffffff'><font size=1 color=black><b>[Toplam: " & mrs.recordcount & "]</b> " & " .. Sayfalar :"
for i=1 to Sayfalar step 1
  if sayfa = i then
        Response.Write "<font size=1><b> "&i&", </b></font>"
  else
    response.write "<a href='default.asp?modul=defter&seite="&i&"'><font size=1><b>" & i & "</b></font></a>,&nbsp;"
  end if
next


%>   
</font></td></tr>     
       
      </table>

<%

mrs.Close
Set mrs = nothing
mconn.Close
set mconn = nothing

end if
%>



/juhlemanden
Avatar billede musti776 Nybegynder
22. september 2003 - 22:59 #3
Hej igen :)
Jeg får denne fejl;

Variablen er ikke defineret: 'ulovligeord'
/celikan/veri/gast.asp, line 113
Avatar billede juhlemanden Nybegynder
22. september 2003 - 23:02 #4
Hehe :O)
Denne linie:
Dim sayfaIci, mconn, mrs, msql, sayac, Sayfalar, gastNot
skal du lige lave følgenden:
Dim sayfaIci, mconn, mrs, msql, sayac, Sayfalar, gastNot, ulovligeord, regEx

/juhlemanden
Avatar billede musti776 Nybegynder
22. september 2003 - 23:13 #5
det er som om du er blevet sendt fra himlen af :)
men der er altså lige et par ting.

når jeg f.eks skriver "hej med dig" kommer den ud med "hejxxx medxxx digxxx", hvordan undgår jeg det?

og kan du ikke lige kigge på hvordan jeg sender ip sammen med det øvrige indtastede??
Avatar billede juhlemanden Nybegynder
22. september 2003 - 23:30 #6
Hejsa

Hvorfor det tilføjer xxx kan jeg ikke helt forstå har lige prøvet at køre noget ligenden her hos mig, og der kommer xxx kun der hvor jeg har skrevet et ulovligt ord...
der bliver skreve xxx istedet for det ulovlige ord...

skal ip'en tilføjes skal du under denne linie:
mrs.Fields("text") = gastNot
skrive dette
mrs.Fields("Ip") = Request.ServerVariables("REMOTE_ADDR")

/juhlemanden
Avatar billede musti776 Nybegynder
22. september 2003 - 23:48 #7
tak fordi du er så tålmodig :)

kan heller ikke forstå hvorfor den kommer med de ekstra "xxx" men det gøre den altså.....


jeg ved godt jeg springer rundt i sp, men når du enlig er i gang :) kan du ikke også lige fortælle hvordan jeg laver connection om så den kan tjekke en tabel i db om ip er banned?

'*** check en en bruger er banned...
set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_Conn_STRING
rs.Source = "SELECT * FROM bannedIp where ip = '" & Request.ServerVariables("REMOTE_ADDR") & "'"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 3
rs.Open()
if not rs.eof then
response.write "Du er banned"
response.end
end if
Avatar billede juhlemanden Nybegynder
23. september 2003 - 00:11 #8
Jamen det var da så lidt :O)
Fuck det kode er noget være rod, og det gør det ikke lettere at noget af det er på tyrkisk :O)
Skal det tjække så man slet ikke kan se noget, eller skal den "bare" lade være med at smide noget i db'en...
hvis man ikke skal kunne se noget, så skal du oven over denne linie:

if Request.QueryString("islem") <> "ekle" then
sætte følgende ind:
Set mConn = Server.CreateObject("ADODB.Connection")
Set mRs = Server.CreateObject("ADODB.Recordset")
   
mConn.Open myDb
   
mSQL = "select * from bannedIp where ip = '" & Request.ServerVariables("REMOTE_ADDR") & "'"
 
mRs.Open msql, mconn, 1, 3

if rs.eof then

så går du helt ned i bunden, lige før det sidste %>
der skriver du følgenden:
else
Response.write "Du er banned"
End If
mrs.Close
Set mrs = nothing
mconn.Close
set mconn = nothing

det brude gøre det...

men det er ikke særlig pænt kodet ;)
Avatar billede musti776 Nybegynder
23. september 2003 - 00:22 #9
helt enig :))

få følgende fejl;
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
/celikan/veri/gast.asp, line 9
Avatar billede juhlemanden Nybegynder
23. september 2003 - 00:24 #10
måske vil det hjælpe hvis du ændrer
if rs.eof then
til
if mRs.eof then
Avatar billede musti776 Nybegynder
23. september 2003 - 00:33 #11
hjalp ikke :/
Avatar billede juhlemanden Nybegynder
23. september 2003 - 00:35 #12
kan du ikke lige maile filen til mig?? ;O)
Avatar billede musti776 Nybegynder
23. september 2003 - 00:36 #13
er på vej
Avatar billede juhlemanden Nybegynder
23. september 2003 - 01:02 #14
Hehe jeg er vist meget træt :O)
mSQL = "select * from bannedIp where ip = '" & Request.ServerVariables("REMOTE_ADDR") & "'"
skal ændres til
mSQL = "select * from bannedIp where bannedIp = '" & Request.ServerVariables("REMOTE_ADDR") & "'"
det felte i din db hedder bannedIp og ikkke Ip :O)
Avatar billede musti776 Nybegynder
23. september 2003 - 01:14 #15
:(
Et objekt er obligatorisk
/celikan/veri/gast.asp, line 193

else
Response.write "Du er banned"
End If
mrs.Close >>>>> denne her!
Set mrs = nothing
mconn.Close
set mconn = nothing
%>
Avatar billede musti776 Nybegynder
23. september 2003 - 01:19 #16
fandt fejlen, den sidste kode skulle stå efter ;

if mRs.eof then

else
Response.write "Du er banned"
End If
mrs.Close >>>>> denne her!
Set mrs = nothing
mconn.Close
set mconn = nothing
%>

men jeg ved ikke hvordan jeg kan takke for alle dine hjælp....
Tusind tusind tusind tak

(Lig lige et svar)

Musti
Avatar billede juhlemanden Nybegynder
23. september 2003 - 09:43 #17
Glad for at kunne hjælpe :P
Avatar billede musti776 Nybegynder
23. september 2003 - 10:00 #18
Vi ses nok igen :))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester