Avatar billede nomisweb Nybegynder
30. marts 2007 - 16:30 Der er 6 kommentarer og
1 løsning

Spam i gæstebog

Hej,
Jeg har prøvet at undgå spam i min gæstebog ved at lave en "kode" som man skal taste ind samt lave et skujlt felt, men det virker ikke på min side. Jeg har det faktisk på 2 sites. På det ene site virker det fint, på det andet kommer der stadig spam.
Hvad kan jeg mon så gøre?

Koden er :
<%
'## Initialisering start
dbsti = "db/"
'## Initialisering slut

Dato = Right(date,4) & Mid(date,4,2) & Left(date,2)
Kommentar = Trim(Request.Form("Kommentar"))
Navn = Trim(Request.Form("navn"))
Kode = Trim(Request.Form("kode"))
IP = Request.ServerVariables("REMOTE_ADDR")

strMessage = Trim(Request.Form("Message"))
  If Not Len(strMessage) = 0 Then
    Response.Redirect "blokeret.asp"
  End If

Kommentar = Replace(Kommentar,"'","&#39;")
Kommentar = Replace(Kommentar,"<","&lt;")
Kommentar = Replace(Kommentar,">","&gt;")

Navn = Replace(Navn,"'","&#39;")
Navn = Replace(Navn,"<","")
Navn = Replace(Navn,">","")

If (Navn <> "") And (Kommentar <> "") And (Kode = "Sannejam") Then

  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(dbsti & "database.mdb") & ";PWD=kodeord"

  strSQL = "INSERT INTO Gaestebog (Dato, Kommentar, Navn, IP) "
  strSQL = strSQL & "VALUES ('" & Dato & "','" & Kommentar & "','" & Navn & "', '" & IP & "')"

  'Response.Write strSQL & "<br><br>"

  Conn.Execute strSQL

  Conn.Close
  Set Conn = Nothing

End If

Response.Redirect "forside.asp?a=kommentar"

%>

----------------- OG ----------------------------

<font face="verdana" size="5" color="<%=TitleColor%>"><b><img src="pics/stor-pil.gif" width="29" height="19">G&aelig;stebog</b></font><br>

    <font face="verdana" color="<%=TextColor%>" style="font-size: 12px;">
    <br>

    <%
    If b = "send" Then
      Response.Write "&raquo; <a href=forside.asp?a=kommentar>Vis kommentarer</a><br><br>"
      %>

      <form action="ny_kommentar.asp" method="post">
      <textarea cols="50" rows="5" name="kommentar"></textarea><br>
      Navn: <input type="text" name="navn" size="20" maxlength="30"><br>
            <span class="ikkese">
<label for="t22">Message: </label>
<textarea id="t22" name="Message" rows="2" cols="30"><%=strMessage%></textarea>
</span><br>
For at undgå robot spam, bedes du nedenfor skrive koden "Sannejam".<br>
Kode: <input type="text" name="kode" size="20" maxlength="30"><br>
<input type="submit" value="Send kommentar!"><br><br>
      </form>

      <br><br><br><br><br><br><br><br>

      <%
    Else

      'Session("gbog_start") = 0
      If Request.QueryString("start") <> "" Then
        Start = Request.QueryString("start")
        Session("gbog_start") = Start
      Else
        Start = Session("gbog_start")
      End If

      Set FS = Server.CreateObject("Scripting.FileSystemObject")

      Set F = FS.OpenTextFile(Server.MapPath("db/gaestebog.txt"), 1)
      Temp = F.ReadAll
      Temp = Split(Temp,"<1>")
      MaxVisninger = CInt("0" & Temp(0))
      Tekst = Temp(1)
      Tekst = Replace(Tekst,vbCrLf,"<br>")
      F.Close
      Set F = Nothing
      Set FS = Nothing

      Response.Write Tekst & "<br><br>"


      Response.Write "<li><a href=forside.asp?a=kommentar&b=send><b>Send en kommentar</b></a><br>"

      Set Conn = Server.CreateObject("ADODB.Connection")
      Set RS = Server.CreateObject("ADODB.RecordSet")
      Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(dbsti & "divajam.mdb") & ";PWD=diva03jam"

      strSQL = "SELECT * FROM Gaestebog ORDER BY Dato Desc;"
      RS.Open strSQL, Conn, 3

      Response.Write "<br>"

      If Start <> "" Then
        tmpStart = CInt(Start)
        For i=1 To tmpStart
          If Not RS.BoF And Not RS.EoF Then
            RS.MoveNext
          End If
        Next
      Else
        tmpStart = 0
      End If

      If Start <> "" Then
        If tmpStart >= 1 Then
          Response.Write "<a href=forside.asp?a=kommentar&start=" & Start-MaxVisninger & ">Forrige kommentarer..</a><br><br>"
        End If
      End If

      i=1
      Do While (Not RS.BoF And Not RS.EoF) And i <= MaxVisninger
        Dato = KonverterDato(Right(RS("Dato"),2) & "-" & Mid(RS("Dato"),5,2) & "-" & Left(RS("Dato"),4))
        Kommentar = RS("Kommentar")

        Response.Write "<b>" & RS("Navn") & ", " & Dato & " " & Left(RS("Dato"),4) & "</b><br>"
        Response.Write Kommentar & "<br><br>"

        RS.MoveNext
        i=i+1
      Loop

      'Response.Write tmpStart & "+" & MaxVisninger & "&lt;=" & RS.RecordCount & "<br>"
      If tmpStart+MaxVisninger < RS.RecordCount Then
        Response.Write "<a href=forside.asp?a=kommentar&start=" & Start+MaxVisninger & ">Flere kommentarer..</a><br><br>"
      End If

      Conn.Close
      Set RS = Nothing
    End If
    %>
Avatar billede leif Seniormester
30. marts 2007 - 21:22 #1
Kender du CAPTCHA ?

Du skriver hvad der skal skrives i Klar tekst, det er ikke en holdbar løsning.

Kig på CAPTCHA: http://www.google.dk/search?hl=da&q=CAPTCHA+ASP&meta=


Så du generer et nyt "kodeord" hver gang siden loades.
Avatar billede nomisweb Nybegynder
31. marts 2007 - 13:08 #2
ja kender det godt, men har ikke lige sat mig ind i det. Kan man ikke bare selv lave et billede med koden på. Så er det selvfølgelig kun en kode men så skal man ikke til at kode alt muligt ekstra?
Avatar billede leif Seniormester
31. marts 2007 - 13:09 #3
Det kunne man sagtens, men betragtes ikke lige så sikkert som ægte CAPTCHA
Avatar billede nomisweb Nybegynder
31. marts 2007 - 13:23 #4
ok jeg må kigge på det. Tak for hjælpen. Vil du have point?
Avatar billede leif Seniormester
31. marts 2007 - 13:32 #5
Hvis du mener at mit råd kan bruges
Avatar billede nomisweb Nybegynder
31. marts 2007 - 13:33 #6
jeg siger tak for hjælpen!
Avatar billede leif Seniormester
31. marts 2007 - 13:38 #7
Jeg takker for point
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