Vic3nt 3 Denunciar post Postado Novembro 25, 2014 Fala galera beleza! Vou tentar ser o mais claro e breve possível. Eu tenho um "formulário" com 2 campos, onde a pessoa coloca o nome, e no outro e-mail. E graças à uns caras designados spammer's, me vi obrigado a usar algum esquema de captcha para deixar seguro o formulário. Então preciso usar o reCaptcha do Google "sim! tem que ser do google", vi a documentação e vários tutoriais no YT, mas "todos" são de versões anteriores, eu preciso de usar a versão atualizada. A versão atualizada eu consegui implementar no meu código e funciona, o user digita, ocorre a validação e o google retorna true....só que não tenho ideia como eu irei pegar este true retornado do google. como esta na documentação: https://developers.google.com/recaptcha/docs/verify { "success": true | false, "error-codes": [...] // optional } Alguém aí já usou a última versão do reCaptcha do Google? eu já segui tudo que a documentação "darkness" explica...e minhas aspirinas se esgotando. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 26, 2014 Você pode usar json_decode(file_get_contents('URL do google aqui')) ou usar a biblioteca PHP do reCaptcha para isso: https://github.com/google/ReCAPTCHA/tree/master/php Compartilhar este post Link para o post Compartilhar em outros sites
Vic3nt 3 Denunciar post Postado Dezembro 1, 2014 E æ galera blz? Enfim! resolvi o problema do reCapcha do Google, e agora entraremos p/ história, pq o que irei escrever, só vai ter aqui pq não achei tutorial algum!...o que tem pela internet é somente tutoriais de versões anteriores, que precisam de bibliotecas e conhecimento perito para implantar...ok let's go! Primeiro de tudo, estou falando desta versão do reCaptcha: "como não achei nome de versão nem nadda, coloquei a imagem" Para colocar ele no seu formulário, vc precisa ter uma conta do google e acessar a página do reCaptcha : https://www.google.com/recaptcha/intro/index.html Fazendo isto, vc clica em "Get reCAPCHA ", preencha o formulário "Register a new site" com o nome do seu domínio, localhost também funciona. Após clicar em Resgister, suas keys de identificação serão geradas, são elas: Site Key e Secret Key. Também será fornecido os html's, que deverão ser implantados: <script src='https://www.google.com/recaptcha/api.js'></script> e a div com seu Site Key já configurado: <div class="g-recaptcha" data-sitekey="AAAAAAAAAAAAAA_000-a5sd4f15c61sd1f45454"></div> Ok man's!...Até então isto que foi passado, é um processo intuitivo e esta explícito na documentação...agora vem a parte que eu me matei difícil. Feito isso, a div do reCaptcha já estará aparecendo no seu html do formulário. Seu formulário HTML não terá alterações; a "action" será configurada normalmente, vamos usar como exemplo o arquivo que irá receber o POST o valida.php. Dentro do valida.php é o seguinte: - Iremos verificar se tem um post chegando. - Se "sim" configuramos as variáveis que irá receber a string de resposta do usuário $user_response, Secret Key $secret_key e um parâmetro opcional o remote_ip $ip_local. - Agora com variáveis configuradas, podemos montar nosso link com os parâmetros exigidos pela validação do reCaptcha do Google usando o json_decode, no seguinte formato: $test = json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.'&response='.$user_response.'&remoteip='.$ip_local.'')); Após executado o json_decode(...) com o link configurado, fazemos a verificação da resposta emitida pela validação do reCaptcha do Google, ele nos retorna o json object, a validação ocorre da seguinte forma: if($test->{'success'} == true){ #se verdadeiro, executa seu código à partir daqui } else { #se falso, executa um alerta, usei como exemplo em javaScript. echo '<script> alert(\'Código de validação incorreto!\'); </script>'; } Após a validação, aí vc segue com seu script. :bye: Segue o código completo: if(isset($_POST['submit'])){ #recebe a string criptografada da resposta do usuário $user_response = $_POST['g-recaptcha-response']; #chave secreta fornecida pelo google Secret Key $secret_key = 'sua_secretKey_aqui'; #pega o ip do user, é uma variável opcional. $ip_local = $_SERVER["REMOTE_ADDR"]; $test = json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.'&response='.$user_response.'&remoteip='.$ip_local.'')); if($test->{'success'} == true){ #se verdadeiro, executa seu código à partir daqui } else { #se falso, executa um alerta, usei como exemplo em javaScript. echo '<script> alert(\'Código de validação incorreto!\'); </script>'; } } O texto ficou meio grande, mas é simples de executar estes passos!... Obrigado @ExtremsX pela luz do json_decode! Aqui tem o exemplo funcionando onde apliquei! Abraço! :bye: Compartilhar este post Link para o post Compartilhar em outros sites