Jump to content

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


Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
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минут

Link to comment
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 'Пшел на* отсюда';

 

Если надо, то обращайся

Link to comment
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 так никто, кроме меня, и не понял, что в этой проверке не так)

Link to comment
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) ){

у меня сделано так

что не так в этой проверке ?

Link to comment
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
Link to comment
Share on other sites

58 минут назад, Mario сказал:

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

if($sec_code == $session_sec_code){

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

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

Link to comment
Share on other sites

5 минут назад, Kir KMS сказал:

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

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

Link to comment
Share on other sites

1 минуту назад, Disy сказал:

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

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...