Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BheringJoao

[Resolvido] ReCaptcha + jquery + php

Recommended Posts

Primeiramente, boa tarde. Estou desenvolvendo um site onde possuo um sistema de cadastro/login usando jquery. Entretanto, tenho de adicionar o ReCaptcha ao formulário de cadastro. Estive olhando na API e não encontrei nada que pudesse me ajudar. O problema é o seguinte. Primeiro eu tenho o meu formulário:

 

            <div id="cadastro" class="cd">
               <form id="cadastrar" action="javascript:func()" method="post" enctype="multipart/form-data">
                   <legend>Cadastro</legend>
                   <fieldset>
                       <label>Login <input type="text" name="login"  /></label>
                       <label>Senha <input type="password" name="pass" /></label>
                       <label>Repita <input type="password" name="passCheck" /></label>

                       <label>ReCaptcha Aqui</label>
                   </fieldset>
                   <input type="submit" class="bt" value="Cadastrar" />
                   <input type="hidden" value="cadastrar" />
           	</form>
           	<img src="img/ajax-loader.gif" id="load" style="display:none; margin:40px auto;" />
           </div>

 

Os dados desse formulário são repassados por jquery ao PHP, da seguinte forma:

 

/* Ao enviar formulario de cadastro */
$("#cadastrar").submit(function() {
	var login = $("#login").val();
	var senha = $("#pass").val();
	var senhacheck = $("#passcheck").val();

	$('#loadlayer').css({'width':$(window).width(),'height':$(window).height()});
	$('#loadlayer').fadeIn(1000);
	$('#loadlayer').fadeTo("slow",0.8);

	$("#cadastrar").hide();

	$("#load").css({
		display:'block',	
	});

	$.post('cadastrar.php', {login : login, senha : senha, senhacheck : senhacheck}, function(reply) {
			if (reply != false) {
				$("#cadastrar #login, #senha, #senhacheck").css({
					background:'#FF4A4A',	
				});

				$("#loadlayer").hide();

				$("#load").css({
					display:'none',	
				});

				$("#cadastrar").show();
			} else {
				$(window.document.location).attr('href',"home");
			}
	});
});	

 

 

Como podem ver, o jquery fica responsável por enviar os dados ao php e coletar as respostas. Entretanto, não sei como capturar o elemento catpcha e repassá-lo através do jquery. Gostaria de saber como posso fazer isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o reCaptcha normalmente, depois crie um endpoint onde você pode verificar se o reCaptcha é válido. Por exemplo, um script checkRecaptcha.php. Então siga a seguinte linha de raciocinio no seu envio via ajax:

envia o valor do campo do reCaptcha para o endpoint citado acima
  Se o captcha estiver correto, continue com o restante do processo de enviar o form.
  Se estiver incorreto apresente a mensagem de erro, e recarregue a imagem do reCaptcha.

Compartilhar este post


Link para o post
Compartilhar em outros sites
data: "recaptcha_challenge_field=" + $("input#recaptcha_challenge_field").val() + "&recaptcha_response_field=" + $("input#recaptcha_response_field").val(),

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.