29 besökare, 8 medlemmar och 4 Studenter är online nu
Loopia

PHP och MySQL

WDS medlem (WDS member)

 

CAPTCHA - en bra metod?

Det finns en viss risk att ditt formulär och ditt formmail-script blir spammat av någon spambot (spam robot). Anledningar till att spamma formulär är samma som att spamma e-postadresser, dvs att sprida annonser och andra "erbjudanden". Dessutom vill spammarna lägga ut sina länkar (URL) i forum, gästböcker och bloggar för att hamna högre i rankingen hos sökmotorer som Google. Du kan inte stoppa spam till 100% men du kan utföra åtgärder som minskar attackerna.

En vanlig metod idag är att använda en verifieringsbild , en sk Captcha (robotfälla), istället för vanlig text vid inloggning till olika tjänster. Captcha är en förkortning av Completely Automated Public Turing Test To Tell Computers and Humans Apart. Tanken är att bara människor ska kunna tolka symbolerna och förhindra att automatiserade program kan läsa bilden. Den första typen av Captcha användes på Yahoo. Captcha används nu tyvärr även av spammare för att förhindra att ditt antispamprogram använder OCR för att hitta information som är vanlig i spam.

Läs mer om Spambots och Captcha  hos Wikipedia.

Captcha är vanligast som bild men det finns även captcha i form av ljud så att även tex synskadade kan använda verifieringsmetoden. Här är ett exempel från www.gmail.com:

Captcha är bara en av flera metoder att förhindra spam och det har framförts en del kritik mot att tillgängligheten försämras. Det gäller framförallt för synskadade, dyslektiker och användare med andra funktionshinder. Men även alla andra måste ju utföra ett extra moment vid inloggning och registrering.

 

Här är några exempel på captcha som är svåra att läsa, klarar du av att läsa tecknen?

Om du i första hand vill hindra automatiserade program att använda dina formulär, forum och bloggar, finns andra metoder som utför samma uppgift. Du kan låta PHP generera ett slumpvis tal som ska kombineras med ett värde som bara människor känner till. "Addera värdet i kontrollfältet med antalet fingrar på en människohand" kan ju vara ett alternativ... som tyvärr stänger ute de som inte förstår språket eller är dåliga på matematik. Att hindra ovälkomna besök innebär oftast att även de besökare du välkomnar påverkas på ett eller annat sätt.

Vi har inga synpunkter på om du ska använda captcha eller inte, vi visar istället hur du gör om du vill ha captcha. Den här guiden visar hur du använder en captcha-bild i ett vanligt formulär tillsammans med ett formmail-script.

OBS! Formulär och formmail som används är hämtade från guiden Formmail - skicka formulär till e-post » och en utförligare beskrivning av vad koden utför visas där.

De filer som ingår i exemplen i den här guiden är är:

  • kontaktform.php
    Formuläret som innehåller captcha och anropar "formmail.php".
  • formmail.php
    Bearbetar informationen i formuläret och validerar innehållet.
  • captcha.php
    Genererar captcha-bilden av slumpvis valda tecken. Kryptering koden sker med MD5 - läs mer om kryptering i guiden PHP och MySQL Login för flera användare »
  • bekraftelse.php
    Sidan som visas när formulärinnehållet skickats.

 

Förutsättningar för att följa guiden

För att du ska kunna följa denna guide förutsätter vi att du har grundkunskaper i PHP motsvarande guiden PHP grunder » och PHP fortsättning »

Captcha-bilden genereras online av PHP om din webbserver har tillgång till GD library 2.0 eller senare - läs mer i guiden Installera GD library i PHP » .

Den här guiden visar två versioner av captcha, en som använder den inbyggda systemfonten och en som använder dina egna TrueType-fonter i valfria storlekar. För att generera TrueType med PHP krävs att du har både GD library och Freetype library - läs mer i guiden Fonter och TrueType i PHP »

 

 

Exempel 1: Captcha med TrueType

 

Klicka här för att prova Exempel 1

 

TIPS! Formulärinnehållet skickas inte någonstans. Du kan prova att skicka meddelandet flera gånger och testa gärna att utelämna information i vissa fält. Prova att ange en ogiltig e-postadress för att testa om Formmail kontrollerar att fälten verkligen är ifyllda och att en korrekt e-postadress används.

 

 

 

Exempel 2: Captcha med systemfonten

 

Klicka här för att prova Exempel 2

 

TIPS! Formulärinnehållet skickas inte någonstans. Du kan prova att skicka meddelandet flera gånger och testa gärna att utelämna information i vissa fält. Prova att ange en ogiltig e-postadress för att testa om Formmail kontrollerar att fälten verkligen är ifyllda och att en korrekt e-postadress används.

 

Installationsanvisning och ZIP-filer

Klicka på ikonen nedan för att läsa hela guiden och hämta ZIP-filen!

WDS medlem (WDS member)

 

OBS! Om du vill du läsa hela guiden måste du vara WDS medlem!

Du kan beställa tjänsten WDS medlem här »

Är du redan WDS medlem?
Klicka på ikonen "WDS medlem" högst upp för att läsa hela guiden!