Jump to content
Sign in to follow this  
Disy

Использование капчи где нужно (не только при регистрации)

Recommended Posts

Всем привет, подскажите пожалуйста кто знает, где настраивается и как привязать капчу к своим некоторым модулям, она то только при регистрации, а вот например у меня есть функция ввода номера телефона и его подтверждение SMSкой, без капчи там никак (боты могут весь баланс затратить у смс :D)
За ранее спасибо!

Share this post


Link to post
Share on other sites

Капча, которая в вии от ботов никак не спасет, только от юзеров, которые цифры не знают. Ставь невидимую рекапчу и всё, в документации написано, чем обернуть, останется лишь сделать вывод ошибке при неудаче

Share this post


Link to post
Share on other sites

Вывести каптчу не трудно, на страницах.

Например кнопка отправить

<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

А вот и 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
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
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
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(ничего = ничего). У тебя в сборке нормально, стоит проверка на то что бы "ничего" не пускало

  • Upvote 1

Share this post


Link to post
Share on other sites
58 минут назад, Mario сказал:

Прогресс не идёт, видимо с 2012 так никто, кроме меня, и не понял, что в этой проверке не так)

if($sec_code == $session_sec_code){

Не сразу прочитал весь ответ.Но один фиг.

Я в курсе что проверка огонь просто

Share this post


Link to post
Share on other sites
5 минут назад, Kir KMS сказал:

@kphp Если есть желание, я могу тебе переписать каптчу, на нормальную.

Ну смотри всё сделал по твоему примеру выше, а капчу не выдает, на кнопку функцию установил такую: keycode.send(); return false;

Share this post


Link to post
Share on other sites
1 минуту назад, Disy сказал:

Ну смотри всё сделал по твоему примеру выше, а капчу не выдает, на кнопку функцию установил такую: keycode.send(); return false;

У тебя есть скайп или тимвивер.Если есть, то кидай в Лс.Помогу

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×