Disy 1 Report post Posted October 8, 2019 Всем привет, подскажите пожалуйста кто знает, где настраивается и как привязать капчу к своим некоторым модулям, она то только при регистрации, а вот например у меня есть функция ввода номера телефона и его подтверждение SMSкой, без капчи там никак (боты могут весь баланс затратить у смс :D) За ранее спасибо! Share this post Link to post Share on other sites
Mario 51 Report post Posted October 8, 2019 Капча, которая в вии от ботов никак не спасет, только от юзеров, которые цифры не знают. Ставь невидимую рекапчу и всё, в документации написано, чем обернуть, останется лишь сделать вывод ошибке при неудаче Share this post Link to post Share on other sites
KirKMS 155 Report post Posted October 8, 2019 Вывести каптчу не трудно, на страницах. Например кнопка отправить <a href="/" onClick="keycode.send(); return false;"><div>Каптча</div></a> Дальше добавляешь в Profile.js например код. //Типо каптча var keycode = { send: function(){ var rndval = new Date().getTime(); Box.Show('sec_code', 280, 'Введите код с картинки:', '<div style="padding:20px;text-align:center"><div class="cursor_pointer" onClick="keycode.updateCode(); return false"><div id="sec_code"><img src="/antibot/antibot.php?rndval=' + rndval + '" alt="" title="Показать другой код" width="120" height="50" /></div></div><div id="code_loading"><input type="text" id="val_sec_code" class="inpst" maxlength="6" style="margin-top:10px;width:110px" /></div></div>', lang_box_canсel, 'Отправить', 'keycode.checkCode(); return false;'); $('#val_sec_code').focus(); }, updateCode:function(){ var rndval = new Date().getTime(); $('#sec_code').html('<img src="/antibot/antibot.php?rndval=' + rndval + '" alt="" title="Показать другой код" width="120" height="50" />'); }, checkCode:function(){ var val_sec_code = $("#val_sec_code").val(); $('#code_loading').html('<img src="'+template_dir+'/images/loading_mini.gif" style="margin-top:21px" />'); $.get('/antibot/sec_code.php?user_code='+val_sec_code, function(data){ if(data == 'ok'){ keycode.finish(val_sec_code); } else { keycode.updateCode(); $('#code_loading').html('<input type="text" id="val_sec_code" class="inpst" maxlength="6" style="margin-top:10px;width:110px" />'); $('#val_sec_code').val(''); $('#val_sec_code').focus(); } }); }, finish: function(){ Box.Close('sec_code'); Box.Info('ok_im', 'Каптча', 'Ну типо всё ок.', 300, 3000); }, } При нажатие на кнопку.Вылезет окно проверки. Если ввести не верно,то окно не уйдёт, если верно, то можно выполнить любой POST AND GET Запрос, или всё что душе угодно. Так-же можно вывести и на страницах каптчу.Т.е сразу и без окна. Код выше, сделал на примере регистрации за 10минут Share this post Link to post Share on other sites
KirKMS 155 Report post Posted October 8, 2019 А вот и php подкатило //Код безопасности $session_sec_code = $_SESSION['sec_code']; $sec_code = $_POST['sec_code']; //Если код введные юзером совпадает, то пропускаем, иначе выводим ошибку if($sec_code == $session_sec_code){ echo 'Всё ок'; }else echo 'Пшел на* отсюда'; Если надо, то обращайся Share this post Link to post Share on other sites
Mario 51 Report post Posted October 8, 2019 11 минут назад, Kir KMS сказал: А вот и php подкатило //Код безопасности $session_sec_code = $_SESSION['sec_code']; $sec_code = $_POST['sec_code']; //Если код введные юзером совпадает, то пропускаем, иначе выводим ошибку if($sec_code == $session_sec_code){ echo 'Всё ок'; }else echo 'Пшел на* отсюда'; Если надо, то обращайся Прогресс не идёт, видимо с 2012 так никто, кроме меня, и не понял, что в этой проверке не так) Share this post Link to post Share on other sites
kphp 26 Report post Posted October 8, 2019 17 минут назад, Mario сказал: Прогресс не идёт, видимо с 2012 так никто, кроме меня, и не понял, что в этой проверке не так) //Код безопасности $session_sec_code = $_SESSION['sec_code']; $sec_code = $_POST['sec_code']; //Если код введные юзером совпадает, то пропускаем, иначе выводим ошибку if(($sec_code == $session_sec_code) AND (strlen($session_sec_code) > 4) ){ у меня сделано так что не так в этой проверке ? Share this post Link to post Share on other sites
Mario 51 Report post Posted October 8, 2019 3 минуты назад, kphp сказал: //Код безопасности $session_sec_code = $_SESSION['sec_code']; $sec_code = $_POST['sec_code']; //Если код введные юзером совпадает, то пропускаем, иначе выводим ошибку if(($sec_code == $session_sec_code) AND (strlen($session_sec_code) > 4) ){ у меня сделано так что не так в этой проверке ? Она обходиться (та, что скинули выше, я бота делал и даже опознавать картинку не нужно было), даже делать ничего не нужно, POST параметр не отправлять и будет совпадение if(ничего = ничего). У тебя в сборке нормально, стоит проверка на то что бы "ничего" не пускало 1 Share this post Link to post Share on other sites
KirKMS 155 Report post Posted October 8, 2019 58 минут назад, Mario сказал: Прогресс не идёт, видимо с 2012 так никто, кроме меня, и не понял, что в этой проверке не так) if($sec_code == $session_sec_code){ Не сразу прочитал весь ответ.Но один фиг. Я в курсе что проверка огонь просто Share this post Link to post Share on other sites
KirKMS 155 Report post Posted October 8, 2019 @kphp Если есть желание, я могу тебе переписать каптчу, на нормальную. Share this post Link to post Share on other sites
Disy 1 Report post Posted October 8, 2019 5 минут назад, Kir KMS сказал: @kphp Если есть желание, я могу тебе переписать каптчу, на нормальную. Ну смотри всё сделал по твоему примеру выше, а капчу не выдает, на кнопку функцию установил такую: keycode.send(); return false; Share this post Link to post Share on other sites
KirKMS 155 Report post Posted October 8, 2019 1 минуту назад, Disy сказал: Ну смотри всё сделал по твоему примеру выше, а капчу не выдает, на кнопку функцию установил такую: keycode.send(); return false; У тебя есть скайп или тимвивер.Если есть, то кидай в Лс.Помогу Share this post Link to post Share on other sites