Vi kan ikke komme med noget som helst uden at vide hvordan mailen bliver sendt - om det er med PHP, ASP, eller noget helt trejde. Du bliver nødt til at komme med lidt flere oplysninger (gerne selve den kode der står for at sende mailen).
Princippet med hidden felter er nogenlunde. Giv den et godt navn "phone", og gem den med en class="red", hvor du så har en "display:hidden". Fordelen i forhold til en captcha-variant er at du ikke generer brugeren.
Du kan også efterhånden oparbejde en negativliste af ord, der ikke må forekomme i teksten. Det virker fint i et tilfælde jeg har, hvor specielt ord i retning "free500mbwesite.com" fint sorterer på spam og ikke spam ;)
Hej igen - tak for tippene (jeg er total rundtosset, er jo kodeblind)
Findes der ikke en enkel(ere) måde at gøre det på?
Synes godt om
Slettet bruger
05. august 2008 - 15:41#8
hvis der var, ville de fleste nok ikke være så plaget af spam ;-)
spam robotterne bliver mere og mere udspekulerede. På et tidspunkt vil den med display:hidden jo også være ubrugelig da robotten bare parser hele skidtet og tolker css'erne.
Det du skriver, er også lidt i samme stil som de ting, vi nævner. Og det kan da også nemt laves. Men så skal vi lige se din kode, hvis vi skal kunne hjælpe.
<%Response.Buffer=true%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/> <title></title> </head> <body bgcolor="#FFFFFF"> <% If Request.Form.Count > 0 Then For I = 1 to Request.Form.Count if Request.Form.Item(I) <>"" then Body = Body & Request.Form.Key(I) & " " _ & Request.Form.Item(I) & vbCRLF end if Next
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "mail.mailadresse.dk" ' Specify a valid SMTP server Mail.From = "info@mailadresse.dk" ' Specify sender's address Mail.FromName = "Besøgende" ' Specify sender's name Mail.AddAddress "info@mailadresse.dk", "Modtager Navn" ' recipient address Mail.Subject = "Kontakt.dk" Mail.Body = Body On Error Resume Next Mail.Send If Err <> 0 Then Response.Write "Fejl: " & Err.Description Else Server.execute("tak.asp") End If End If %> </body> </html>
<%Response.Buffer=true%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/> <title></title> </head> <body bgcolor="#FFFFFF"> <% If Request.Form.Count > 0 And Request.Form("phone") = "" Then For I = 1 to Request.Form.Count if Request.Form.Item(I) <>"" then Body = Body & Request.Form.Key(I) & " " _ & Request.Form.Item(I) & vbCRLF end if Next
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "mail.mailadresse.dk" ' Specify a valid SMTP server Mail.From = "info@mailadresse.dk" ' Specify sender's address Mail.FromName = "Besøgende" ' Specify sender's name Mail.AddAddress "info@mailadresse.dk", "Modtager Navn" ' recipient address Mail.Subject = "Kontakt.dk" Mail.Body = Body On Error Resume Next Mail.Send If Err <> 0 Then Response.Write "Fejl: " & Err.Description Else Server.execute("tak.asp") End If End If %> </body> </html>
"De store sites har i hvertfald problemer med det og nogle går væk fra det igen." >> Kan du pege os i retning af noget dokumentation? =)
Regnestykker er endnu ældre end captcha - og kanon let at knække. Derimod er det ikke svært at lave et billede, som ikke kan aflæses maskinelt uden voldsomt komplicerede algoritmer.
Til gengæld er der masser af løsninger 'derude', hvor det er helt tydeligt, koderen ikke har forstået princippet i captcha, og så kan alt jo brydes. Den slags har jeg såmænd også set på ret store sites :o|
If Request.Form.Count > 0 And Request.Form("phone") = "" Then
Dvs. at din kode kun bliver kørt, hvis feltet "phone" er tomt.
Og feltet bør jo være tomt, fordi det er skjult, så brugere ikke kan indtaste i det - men idéen er så, at spam-programmer stadigvæk skulle udfylde feltet.
og indsætte et sted på siden (teksten er underordnet, id'et skal bruges): <div id="jsreq">Javascript er krævet til denne formular, aktiver javascript og opdater siden</div>
... phone elementet vil nu have en value, men value forsvinder men javascript aktiveret. Ulempen er dog at brugeren skal have javascript aktiveret ...
Foresten så skal div elementet stå før script blokken, ellers skal indholdet i script blokken ind en javascript window onload funktion (eller rettere den eksisterende window onload funktion hvis du har en på siden i forvejen).
Synes godt om
Ny brugerNybegynder
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.