[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
MCaptcha v.2.0 by $USERNAME$
SweeXДата: Четверг, 01.07.2010, 13:30 | Сообщение # 1
Полковник
Сообщений: 150
Обновлённая версия скрипта MCaptcha.

Скрипт выводит на странице форму, в которой есть пример и поле для ответа. Пользователь вводит ответ, если он правилен — кнопка "Регистрация" разблокировывается, если нет — происходит перезагрузка страницы.

Данный скрипт конфликтует со скриптом "Проверка логина пользователя", устанавливать их одновременно не рекомендуется.

Что нового:

  • Не надо вручную вводить массив с чётными числами, как это было в первой версии. Следовательно, установка проще
  • Форма выводится не в стандартном окне, а на самой странице
  • Улучшенный дизайн

    Скриншот:

    Установка:

    Страница регистрации, после $BODY$:

    Code
    <script type="text/javascript">      
    /*      
    * MCaptcha v.2.0      
    * by $USЕRNAME$      
    * 02:27 29.03.2010      
    */
    var even = [],
    logs = ['1+2', 3, '5+7', 12, '3+4', 7],
    but = document.getElementById('siF20');
    for (var u = 0; u < logs.length; u++) if (u % 2 == 0) even.push(u);
    i = even[Math.floor(Math.random() * even.length)];
    function chkAns() {
         if (document.getElementById('ans').value == logs[i + 1]) {
          document.getElementById('ansArea').innerHTML = '<b style="color:green;">Ответ верный</b>';
          but.disabled = false;
          setInterval("document.getElementById('ansArea').style.display = 'none'", 1500);
         } else {
          document.getElementById('ansArea').innerHTML = '<b style="color:red;">Ответ неверный</b>';
          setInterval("location.reload()", 1500);
         }
    }
    but.disabled = true;
    ndiv = document.createElement('div'),
    ndiv.id = 'ansArea',
    ndiv.innerHTML = '<br />Уважаемый пользователь! Для продолжения регистрации, решите следующий пример:<br /><b>' + logs[i] + ' = </b><input type="text" id="ans" /> <input type="button" value="Ответить!" onclick="chkAns()" />';
    but.parentNode.insertBefore(ndiv, but.nextSibling);
    </script>

    logs = ['1+2', 3, '5+7', 12, '3+4', 7] — вписываем сначала пример, а потом ответ на него.
    Разумеется, писать нужно не те примеры, которые в коде, а что-нибудь посложнее. Чтобы школота не смогла решить.
    Важно! После того, как запишите свои примеры и ответы, воспользуйтесь кодировщиком, чтобы ответы нельзя было посмотреть в исходнике страницы!
    Автор — $USERNAME$.

    • Страница 1 из 1
    • 1
    Поиск: