Jelikož tento web pohání můj vlastní systém, implementuji do něj postupně funkce tehdy, až když je potřebuji. Když roboti po pár měsících od startu přišli na to, jak přidávat komentáře pod články a ty se začaly objevovat opravdu ve velkém množství, situaci bylo potřeba vyřešit.
Nechtěl jsem uživatele obtěžovat s opisováním znaků z nečitelných obrázků, ani s matematikou. Problém za mě vyřešil Jakub Vrána. Nutno říct, že jeho způsob eliminace spamů u mě funguje na sto procent, od jeho nasazení mi nepřišel do komentářů jediný nevyžádaný příspěvek (od automatu).
A jak na to? Předpokládáme, že botům stále nebyl dán do vínku JavaScript. Uživateli tedy položíme nějakou otázku či zadáme úkol vyplnit dodatečné pole formuláře, JavaScriptem toto pole skryjeme a požadovanou hodnotou vyplníme. Uživatelé bez JavaScriptu tedy nejsou nijak omezeni, pouze musí vyplnit o jednu hodnotu navíc. Ve zpracovávacím skriptu pak nepokračujeme, pokud v dané proměnné není požadovaná hodnota.
Část formuláře s ochranným polem
<noscript><tr><td><label>Vyplňte nospam:</label></td><td><input type=„text“ name=„robot“ /></td></tr></noscript>
<script type=„text/javascript“> document.write(‚<input type=„hidden“ name=„robot“ value=„no‘ + ‚spam“ />‘); </script>
PHP skript
Zde už následuje pouze jednoduchá podmínka, která nepustí data k zápisu do databáze, pokud formulář robot neobsahuje řetězec nospam.
if ($_POST[„robot“] == „nospam“) { … }
