2. В кнопку, по якій йде відправка, додаємо
Наприклад, якщо код кнопки був такий:
то ми його перетворюємо в такий
3. В php-скрипті, який перевіряє дані з форми робимо щось типу:
if # 40; $ _POST # 91; 'Check' # 93; ! = 'Secretcode' # 41; exit # 40; 'Spam decected' # 41; ;
Суть проста - при кліці користувача на кнопку «Відправити» ДжаваСкрипт записує в порожню змінну секретне значення. І від живої людини змінна приходить з цим значенням, а від бота вона приходить порожня, тому що він не виконує JS. Ось і вся хитрість. На форумі vbulletin, де я поставив такий захист, спаму немає вже 2 роки. На одному самопісний сайті теж вже півроку без спаму обходимося, хоча ніякої каптчі немає, тільки цей захист. Зараз ось на один сайт на joomla поставив такий захист, тому що злі спамери занадилися слати мені по 20 листів в годину через форму зворотного зв'язку.
Як Ви розумієте, це тільки загальна схема. Назва поля check і значення перевірочної змінної secretcode можна і навіть бажано поміняти на будь-які інші на свій розсуд. В php-обробнику можливо треба буде працювати не з масивом $ _POST, а з якимось іншим. У вищезгаданій Джумла я цю змінну знаходив так:
$ Check = JRequest. getVar # 40; 'Check'. ''. 'Post' # 41; ;
Заюзать зазначену вище функцію у себе замість задовбали всіх капчи, подивимося, як піде справа
Kirill Mazur, теж гарне рішення. Але суть не сильно відрізняється. У мене перевірочне значення константа, а у Вас це число секунд на сторінці.
shagimuratov, ось саме Akismet у мене і стоїть на цьому бложіке. Я цілком задоволений, спам не проходить, зараз написано в статистиці, що він захистив від 67 тисяч спам-повідомлень, непоганий результат
Відключаємо JS і все, припливли. Гівно, а не рішення!
Я ж писав:
>>> Є якийсь жалюгідний відсоток користувачів з відключеним JS, але я ними нехтую.
Зараз глянув статистику того сайту, де використовую цей прийом, користувачів без js там виявилося аж 0.35%. І мені за великим рахунком наплювати на них. Мені важливіше 99.65% користувачів, які будуть позбавлені від потреби вводити каптчу.
Звичайно, якщо у Вас стоїть завдання догодити всім 100% користувачів - то це рішення не підходить. Але не забудьте, що при використанні іншої каптчі 100% людей задовольнити теж не вийде. Яку б капчу Ви не ставили - все одно якийсь відсоток людей, більший 0 не зможе її ввести.
Марина дак поставте вищеописану захист на свій сайт.
А я недавно придумав схожий спосіб захисту, але трохи більш ізошрённий. Суть та-ж, але JS обробник повинен вписати в hidden полі не константу, а суму випадково згенерували (на сервері) чисел. А відповідь порівнюється з відповіддю внесеним сесію (масив $ _SESSION). Таким чином, навіть, якщо бота навчити виконувати JS або розбір по фіксованій формі, то йому ще потрібно буде підтримувати Cookie і як наслідок зайти на сторінку 2 рази: 1-й для того щоб отримати форму, приклад для розрахунку і Cookie, а 2 й, для того, що б відправити форму з відповіддю і куками
підкажіть будь ласка, де в vbulletin вставляється цей код, в якому шаблоні if ($ _POST [ 'check']! = 'secretcode') exit ( 'Spam decected'); ?
Дякуємо.
Все необхідне для розсилок, розкруток і перевірок - чекер, софт, накрутки.
Розробка дизайну і сайтів, а так само оформлення спільнот вконтакте
Будемо раді бачити вас на нашому порталі.
Надаємо відгуки та гарантії, ідентифіковані гаманці, всі види оплат.
Даний метод не спрацьовує, все одно приходять спам-листи Підкажіть, як можна вирішити цю проблему за допомогою додавання somefunction (). На жаль не сильний в JS. Заздалегідь дякую