Днес ще споделя 2 много бързи и почти 100% ефективни начина за борба със спама. Естествено, щом са бързи, значи са и прости – както като концепция, така и като реализация. Ето примерна концепция за борба със спама в контактна форма :

Имаме стандартна класическа форма. В нея има input полета за име, имейл, телефон и съобщение (всъщност полетата са ориентировъчни, без значение какви точно). Контактната форма работи, но пристигат много спам “запитвания” и вие или вашите клиенти не са доволни.

  1. Добавете едно допълнително поле, което няма да се ползва и го скрийте (най-добре през CSS). Пример :
    <input class=”hideme” type=”text” name=”something-you-will-not-actually-use” value=”” />
    В CSS-а добавяме този клас :
    .hideme { display: none }
    Това е за визуалната част. В скрипта, който обработва заявката проверяваме дали това поле е попълнено и ако е – не приемаме заявката. Ето примерен псевдо код :
    if ($_POST[‘something-you-will-not-actually-use’]!=””) {
    exit;
    }
    Идеята е, че след като е скрито потебителят няма как да попълни това поле, а ботовете обикновено попълват всички инпут полета.
  2. Добавяте едно скрито поле с timestamp-а на зареждане на скрипта. При обработка проверявате текущото време и сравнявате разликата. Ако разликата (времето, когато е заредена страницата и времето, в което евентуалният потребител/бот е цъкнал submit бутона) е по-малкот от 5-10 секунди, значи съобщението е пратено от бот. Логиката тук е, че човек първо трябва да прочете статията (ако има такава де), да попълни своите данни и тогава да натисне бутона за изпращане. Аз не мога да си попълня всички полета в запитването за 10 секунди, а вие ?
    В HTML-а трябва да се добави следното :
    <input type=”hidden” name=”timestamp” value=”<enter_timestamp_here>” />
    Ето и псевдо кода за обработка :
    if(time()-$_POST[‘timestamp’]<10) {
    exit;
    }

    Надявам се да съм бил полезен на някой.

Comments Off

Comments are closed.