Ir ao conteúdo

Posts recomendados

Postado

Oi Pessoal!

 

Empolgado em entrar no fórum. Estarei de olho para contribuir.

 

Hoje venho pedir ajuda na implementação do reCaptcha do Google no formulário de contato do meu site.

 

Já fiz as chaves, li bastante tutoriais que me ajudaram muito. funcionou em partes. Vou mandar o código mais simples que achei e implementei no servidor e o print da saída.

 

Erro na verificação! :(

 

Por favor, conseguem me ajudar?

 

Link do infoPHP: https://fonzie.com.br/phpinfo.php

 

Fico grato!

 

Abraços,

Artur.

 

<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<form action="" method="POST" style="width: 80%; margin-left: 497px;">
    <div style="margin-left: 48px;"><b> Registration Form </b><br><br></div>
    <div>Name: <input type="text" name="name" value="" /><br><br></div>
    <div>Email: <input type="text" name="email" value="" /><br><br></div>
    <div class="g-recaptcha" data-sitekey="6LfQluYgAAAAAKUYNWD2oAyPMM5IGlCwBHxw1DwR"></div><br><br>
    <input type="submit" name="submit" value="SUBMIT">
</form>

<?php
 if(isset($_POST['submit']) && $_POST['submit'] == 'SUBMIT'){
  if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response']))
  {
        $secret = '6LfQluYgAAAAAKUYNWD2oAyPMM5IGlCwBHxw1DwR';
        $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
        $responseData = json_decode($verifyResponse);
        if($responseData->success)
        { ?>
<div style="color: limegreen;"><b>Your contact request have submitted successfully.</b></div>
        <?php }
        else
        {?>
            <div style="color: red;"><b>Robot verification failed, please try again.</b></div>
        <?php }
   }else{?>
       <div style="color: red;"><b>Please do the robot verification.</b></div>
   <?php }
 }
?>

 

Código:

Captura de tela de 2022-07-14 16-41-46.png

Postado

@arturbc Amigo, antes de tudo se essa é a sua chave "secret" tira ela do seu post.

Tem que verifica se o seu domínio está na lista de permissão da sua chave.

 

Outra coisa que vi é que o token secret não é o mesmo que vai no input o sitekey, e no seu exemplo está o mesmo.

 

Fiz uma forma mais pratica de fazer isso.

 

<?php

$msg = "";

if ($_SERVER['REQUEST_METHOD'] === "POST") {
    $name     = filter_input(INPUT_POST, "name", FILTER_DEFAULT);
    $email    = filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL);
    $recaptch = filter_input(INPUT_POST, "g-recaptcha-response", FILTER_DEFAULT);

    if (!empty($recaptch)) {
        $params = http_build_query([
            "secret"   => "6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe",
            "response" => $recaptch
        ]);

        $request = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?" . $params));

        if (isset($request->success) and $request->success) {
            $msg = "Recaptch passo!";
        } else {
            $msg = "Deu erro!";
        }
    }  else {
        $msg = "Recaptcha em branco!";
    }
}

?>
<!DOCTYPE html>
<html lang="pt-BR">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Login</title>
    </head>
    <body> 
        <p><?= $msg ?></p>
        <form method="POST">
            <div>Name: <input type="text" name="name" value="" /><br><br></div>
            <div>Email: <input type="text" name="email" value="" /><br><br></div>
            <div class="g-recaptcha" require data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"></div><br>
            <input type="submit" name="submit">
        </form>
        <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    </body>
</html>

 

  • Obrigado 1
Postado

Gabriel, muito obrigado.

 

Ainda não vi mas vou atrás da sua solução.

 

Tu é O cara! 😉

 

Grande abraço,

Artrur.

 

@GabrielSennaMs

 

Obrigado, Gabriel!

 

Implementei, funcionou! Massa. Agora somente com mensagem no captcha:

 

"this recaptcha is for testing purposes only please report to the site admin if you are see this"

 

Entrei na adminstração do Google reCaptca 2 e 3, até fazendo alterância mas o erro persiste. Servidor Aceita as configurações.

 

Bloqueiei novamente! 😛

 

Se tiver alguam ideia sou todo "ouvidos".

 

Link: https://www.fonzie.com.br/cp-kb/

 

Abraços,

Artur Bazzanella.

Captura de tela de 2022-07-18 15-05-55.png

Postado

@arturbc Bom agora você tem que entra na sua conta do google em Google Cloud Console e cadastrar o seu aplicativo, no caso o seu site, e pedir o recurso do reCaptca para a sua aplicação, lá você deve obter o token de uso do reCaptca.

 

Lembrando que você tem que adicionar o host do seu site para a lista de permissão de uso do token tem aplicação.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!