---
title: "Förhindra spam från formulär"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/182129-förhindra-spam-från-formulär"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "norra54"
published: "2010-01-23T18:47:45.000Z"
updated: "2010-02-10T08:13:28.000Z"
replies: 7
views: 1366
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/182129-förhindra-spam-från-formulär"
---

# Förhindra spam från formulär

## #1 — norra54, 2010-01-23T18:47Z

Hej.

Jag har ett mycket enkelt FormMail-fomulär där jag senaste tiden bombarderas av Spambots, dvs inget vettigt skickas. Bara en massa %&#((( osv.

Hur kan jag mha javascript validera formuläret innan det skickas?
Helst skulle jag önska att i ett av fälten MÅSTE man skriva ett visst tal kanske, vad blir 5+5 t ex.

Hur skulle det se ut?

Jag vill helst fortsätta med FormMail-scriptet annars finns det också möjlighet att stoppa in lite php.

Permalänk: https://www.webforum.nu/p/182129

## #2 — norra54, 2010-01-23T19:16Z

Testar lite med Jojoxx´s valid-script:

```
<script type="text/javascript">
/* Detta script finns att hämta på http://www.jojoxx.net och
   får användas fritt så länge som dessa rader står kvar. */

String.prototype.isValidEmail = function(){
	return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validateForm() {
	if (document.f.namn.value=="") {
		alert("Du måste fylla i ett namn.");
		return false;
	} else if (document.f.spamkontroll.value=="") {
		alert("Du måste ange vad 10 + 5 blir.");
		return false;
	} else if (!document.f.email.value.isValidEmail()) {
		alert("Du måste fylla i korrekt en E-mail adress.");
		return false;
	} else if (document.f.url.value.indexOf("://") == -1) {
		alert("Du glömde fylla i din hemsidesadress ordentligt.");
		return false;
	} else if (!document.f.ruta.checked) {
		alert("Du måste fylla i kryssrutan.");
		return false;
	} else {
		alert("Ditt meddelande har skickats iväg.");
		return true;
	}
}
</script>
```

```
	} else if (document.f.spamkontroll.value=="") {
		alert("Du måste ange vad 10 + 5 blir.");
		return false;
```

Har jag lagt till men det fungerar ju naturligtvis inte så långt. Någon som vill/kan fylla på?

Permalänk: https://www.webforum.nu/p/2223870

## #3 — Nate.A, 2010-01-25T16:55Z

De flesta SpamBotar använder inte JavaScript så du bör använda php eller liknande istället.

Permalänk: https://www.webforum.nu/p/2224054

## #4 — norra54, 2010-01-25T18:32Z

Ok, tack.

Får man be Moderatorn att flytta denna tråd till PHP-avdelningen?

Permalänk: https://www.webforum.nu/p/2224066

## #5 — lilja, 2010-02-09T15:28Z

Jag ser 4 mer eller mindre bra lösningar varav de flesta har kommit upp tidigare på detta forum.

1) Be användaren svara på 1 + 2, vilken färg texten har eller liknande

2) Byt ut ett hidden-värde mha javascript och kontrollera detta på serversidan. Eftersom robotar inte använder javascript kommer det outbytta värden när det är en robot (eller när någon har javascript avstängt)

3) Använda captcha (bild med förvrängd text på som användaren skall skriva in i en ruta.

4) Tror du kan införa <http://akismet.com/development/> på din sida. Denna lösning kommer som standard med Wordpress.

Permalänk: https://www.webforum.nu/p/2225452

## #6 — StefanBergfeldt, 2010-02-09T15:48Z

På <http://grubblar.nu> ombeds man skriva siffran sju i ett fält när man kommenterar ett inlägg. Min blogg är iallafall helt spam-fri, och de andra jag har läst där också.

Permalänk: https://www.webforum.nu/p/2225454

## #7 — norra54, 2010-02-09T20:33Z

Jag började om och har nu ett fungerande (hittills vill säga) spam-skydd i PHP.
Det är hämtat från <http://designskolan.net/skapa-ett-mail-formular-med-livevalidation-och-ett-enkelt-spamskydd/>

Tack alla iaf

Permalänk: https://www.webforum.nu/p/2225488

## #8 — lilja, 2010-02-10T08:13Z

> **[norra54 skrev:](https://www.webforum.nu/p/1497371)**
>
> Jag började om och har nu ett fungerande (hittills vill säga) spam-skydd i PHP.
> Det är hämtat från <http://designskolan.net/skapa-ett-mail-formular-med-livevalidation-och-ett-enkelt-spamskydd/>
> 
> Tack alla iaf

Det där kommer antagligen inte fungera. Precis som det står i första kommentaren använder robotar oftast inte JavaScript. Du behöver en validering på servern. Detta kan du i ditt fall åstadkomma om du sparar det genererade svaret i en sessionsvariabel som du sedan kontrollerar emot när mailet skall skickas i php-koden.

Eller så kör du på samma tal hela tiden och lägger in en if-sats i php-koden som kontrollerar att detta tal finns. Fungerar antagligen precis lika bra.

Permalänk: https://www.webforum.nu/p/2225504

---

Tråden på webben: https://www.webforum.nu/amne/javascript/182129-förhindra-spam-från-formulär
