активация кнопки при проверке google капча
Подскажите, как активировать строку <input type="submit" value="<?php echo $button_continue; ?>" class="button" /> кнопку продолжить, если данные с капчи google = true ? не перезагружая страницу
|
setInterval(function(){ if (google = true) document.querySelector('.button').click() },1000); |
Цитата:
из обработчика php? я так понимаю без перезагрузки страницы я в php еще понимаю а в аяксах явах и джейсон дуб |
гугл капчей не пользовался, нужно читать документацию
|
.button - это класс кнопки?
|
cinema4d, смотрите раздел "g-recaptcha tag attributes and grecaptcha.render parameters".
Вам нужен атрибут "data-callback". https://developers.google.com/recapt...splay#js_param |
Цитата:
я тут слепил костыль из того что было если не сложно посмотрите, при проверке и нажатии хочу активировать вторую кнопку id="button" <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"> <script src="https://www.google.com/recaptcha/api.js"></script> </head> <body> <div class="container"> <form class="form-horizontal"> <div class="form-group"> <label for="login" class="col-sm-3 control-label">Ваш логин</label> <div class="col-sm-9"> <input type="text" name="login" class="form-control"> </div> </div> <div class="form-group"> <div class="col-sm-offset-3 col-sm-9"> <div class="g-recaptcha" data-sitekey="AAAAA"></div> / скрыл реальный код </div> </div> <div class="form-group"> <div class="col-sm-offset-3 col-sm-9"> <button type="submit" class="btn btn-primary">Отправить</button> <button type="submit" id="button" disabled="disabled" class="btn btn-primary">Отправить</button> </div> </div> </form> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script type="text/javascript"> $("form").submit(function(e){ e.preventDefault(); var login = $("input").val(); $.ajax({ url: 'handler.php', type: "post", data: "login=" + login + "&g-recaptcha-response=" + grecaptcha.getResponse(), success: function(data) { if(data === 'ok') { $('#button').attr('disabled','disable'); } else { console.log(data); } } }) }); </script> </body> </html> <?php if($_POST['g-recaptcha-response']) { $captcha = $_POST['g-recaptcha-response']; $secret = "AAAA"; // скрыл реальный код $json = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=". $secret . "&response=" . $captcha), true); if($json['success']) { echo "ok"; } else { echo "recaptcha error"; } } else { echo "Вы не ввели значение recaptcha"; } ?> |
cinema4d, я думаю и этого достаточно.
<div class="g-recaptcha" data-sitekey="AAAAA" data-callback="someFunctionName"></div> <script>function someFunctionName(){ $('#button').removeAttr('disabled'); }</script> В документации, насколько помню, написано, что callback будет вызван только после успеха. upd. непонятно зачем так извращаться с активацией сабмит-кнопки. Вставили на страницу рекапчу, на сервере перед проверкой данных проверили капчу. Если капча "верна", то продолжаем работу, нет, что-нибудь да делаем. Зачем делать дополнительную проверку на клиенте, если боту она до лампочки? |
я так понимаю добавления data-callback ?
<div class="g-recaptcha" data-sitekey="6Lcv7BoUAAAAAHpmHEEYxvuNUbGwdtWnbe_J1hqL" data-callback="onSuccess"> |
Цитата:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"> <script src="https://www.google.com/recaptcha/api.js"></script> </head> <body> <div class="container"> <form class="form-horizontal"> <div class="form-group"> <label class="col-sm-3 control-label">Ваш логин</label> <div class="col-sm-9"> <input type="text" name="login" class="form-control"> </div> </div> <div class="form-group"> <div class="col-sm-offset-3 col-sm-9"> <div class="g-recaptcha" data-sitekey="6Lcv7BoUAAAAAHpmHEEYxvuNUbGwdtWnbe_J1hqL" data-callback="onSuccess"></div> </div> </div> <div class="form-group"> <div class="col-sm-offset-3 col-sm-9"> <button type="submit" class="btn btn-primary">Отправить</button> <button type="submit" id="button" disabled="disabled" class="btn btn-primary">Отправить</button> </div> </div> </form> </div> <script> var onSuccess = function(response) { alert('Hello World!'); $('#button').attr('disabled','disable'); }; </script> </body> </html> |
Сервис гугла помогает в взломе своего же детища https://habrahabr.ru/company/pentestit/blog/341322/
|
Цитата:
Строка "$('#button').attr('disabled','disable');" делает кнопку недоступной. Смотрите комментарий №8. |
да активировать, извините не видел второй страницы
|
я не понимаю, тупой я)
|
<script> var onSuccess = function(response) { //alert('Hello World!'); $('#button').removeAttr('disabled'); }; </script> разве не так должно быть? removeAttr ('disabled') <button type="submit" id="button" disabled="disabled" class="btn btn-primary">Отправить</button> |
сорри за то что выносил мозг!! банально не подключил
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> |
вот вам версия новей
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> |
Часовой пояс GMT +3, время: 01:37. |