Problema com recapitcha

2 respostas
R

ola pessoal tudo bem eu estou iniciando minha vida no java e estou com um problema eu estou montando um blog e tive um problema de robos nos meus comentarios, ou seja encheram de spans ai achei o recaptcha ele ta mostrando certinho no site, só que estou com um problema na validação do recaptcha na linha if (reCaptchaResponse.isValid()) { é como se ele nao reconhecesse esse if ele sempre retorma a mensagem de não válido e tem o código para a inserção do comentário e ele executa também o código mesmo dando a condição de não válido alguém pode me ajudar ja teve esse problema abaixo segue o código completo da validação. Abraços e obrigado.

<jsp:useBean id="bdIncludeCadastro" scope="page" class="br.com.prumos.caddecontatos.BDCadDeContatos"/>
<jsp:useBean id="contatoIncludeBlog" scope="session" class="br.com.prumos.caddecontatos.Contato"/>
<jsp:useBean id="grupoIncludeCadastro" scope="page" class="br.com.prumos.caddecontatos.GrupoCadDeContatos"/>
<%@ page import="net.tanesha.recaptcha.ReCaptchaImpl" %>
<%@ page import="net.tanesha.recaptcha.ReCaptchaResponse" %>
<%
	boolean existeEmail = true;
	String acaoPublicar = request.getParameter("acaoPublicar");
	BDNoticias bdNoticiasBlog = new BDNoticias();							   
	//nunca vai passar por caus do existeEmail
	
		String remoteAddr = request.getRemoteAddr();
        ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
        reCaptcha.setPrivateKey("6LfBsrwSAAAAAHL7GWbOb0GE9nUOIMyCjwJIXjeY");
	   
        String challenge = request.getParameter("recaptcha_challenge_field");
        String uresponse = request.getParameter("recaptcha_response_field");
		
		if(challenge!=null && response!=null){
        ReCaptchaResponse reCaptchaResponse = reCaptcha.checkAnswer(remoteAddr, challenge, uresponse);
	
	    if ( acaoPublicar !=null && acaoPublicar.equals("publicar")  && existeEmail){
		blog.setAutor(request.getParameter("autor"));
		blog.setEmail(request.getParameter("email"));
		blog.setComentario(request.getParameter("texto"));
		Date data = new Date();
		blog.setDataCadastro(data);
		bdNoticiasBlog.open();
			bdNoticiasBlog.insertBlog( blog, Integer.parseInt(noticia_id) );
		bdNoticiasBlog.close();
		msgComentario = "comentado";
		
		//Cadastro
		contatoIncludeBlog.setNome( request.getParameter( "autor" ) );
		contatoIncludeBlog.setEmail( request.getParameter( "email" ) );
		contatoIncludeBlog.setHabilitado( true );
		contatoIncludeBlog.setRecebeEmail( true );
		
		if (reCaptchaResponse.isValid()) {
         
		%>
		
		<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
            alert ("\n Atenção \n Você digitou a resposta errada .")
        </SCRIPT>
		
		<%
		
		///Cadastro
		 
        } else {
				
				bdIncludeCadastro.open();
			existeEmail = bdIncludeCadastro.existeEmail(contatoIncludeBlog.getEmail());
		bdIncludeCadastro.close();
		if ( !existeEmail ) {
			bdIncludeCadastro.open();
			grupoIncludeCadastro = bdIncludeCadastro.selectGrupoNome( "Blog" );
			try {
				if ( grupoIncludeCadastro == null ){
					grupoIncludeCadastro = new GrupoCadDeContatos();
					grupoIncludeCadastro.setNome( "Blog" );
					grupoIncludeCadastro.setId( bdIncludeCadastro.insertGrupo(grupoIncludeCadastro) );
				}
				contatoIncludeBlog.setGrupo( grupoIncludeCadastro );
				bdIncludeCadastro.insertContato( contatoIncludeBlog );
			} catch ( Exception e) {
			}
			bdIncludeCadastro.close();
		} 
		%>
		  <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
            alert ("\n Seu comentário foi cadastrado com sucesso.")
          </SCRIPT>
		<%

        }}
	}
%>

2 Respostas

andwolf

Não sei se esta correto mas tente isso:

if (!reCaptchaResponse.isValid()) {

adicione “!” antes dessa condição para nega-la , se o recapitcha for invalido a condição final deste if fica verdadeira

É a primeira coisa que vi

R

caro amigo é muito estranho mas eu tentei a sua dica e tb não funcionou, será que a minha lógica esta errada, pois estou começando no java agora, acredito que não, sei lá é como se não existisse o if ele executa o código do mesmo jeito mas o estrutura de condição esta lá eu coloquei os arquivos na pasta que tem que colocar do java. puxa e to precisando muito resolver isso

ATT
Rafael

Criado 1 de outubro de 2010
Ultima resposta 4 de out. de 2010
Respostas 2
Participantes 2