- <form action="whatever.php" method="post">
- <!-- Alle dine random inputs her -->
-
- <input type="text" name="message" id="messagebox"/>
-
- <!-- Din submit button her -->
- </form>
- <?php
- if($_POST['message']!="") {
- die("Spambot opfanget!");
- }
- //Normal kode her.
- #messagebox {
- display:none;
- }
Something like that. Bemærk jeg er ikke så garvet i HTML/PHP/CSS som jeg har været, så hver opmærksom på fejl og mangler. Den basiske idé er at du laver et ekstra input felt med et navn der kan tiltrække spambots ("message" fx) og så gemmer du det med CSS så dine normale brugere ikke ser feltet. Så før du processerer dine inputs på server siden, tjekker du om feltet virkelig er tomt. Hvis feltet er tomt bør du kunne gå ud fra at det var en bruger der indsendte formularen, hvis der er indhold (ligegyldigt hvad) er det højst sandsynligt en bot. Bot's læser ikke CSS sidst jeg tjekkede, måske en skønne dag de vil. Men for nu skulle det holde det værste væk.
Udvidet forklaring:
Grunden til at det kan virke er at spam bots for effiktivtet og simplicitet bare downloader din bagvedliggende HTML kode og finder alle tænkelige formulerer (eller går efter dem med specielle navne som "message" eller "comment" osv) og så indsender de POST dataene direkte til din server uden om nogle som helst browsere. Dvs din side bliver aldrig renderet hos spambotten, og derfor kan den ikke se at det felt den er ved at sende ind, faktisk slet ikke bliver vist til brugeren.
Normale brugere ser jo ikke feltet og kan derfor ikke udfylde det, ved mindre de skulle bruge en browser der ikke understøtter CSS men det er jo ret usandsynligt.
Indlæg senest redigeret d. 19.07.2011 20:26 af Bruger #14381