{"id":28145,"date":"2021-06-03T17:42:00","date_gmt":"2021-06-03T14:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28145"},"modified":"2021-10-18T04:04:56","modified_gmt":"2021-10-18T01:04:56","slug":"integre-o-recaptcha-invisivel-do-google-com-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/integre-o-recaptcha-invisivel-do-google-com-php\/","title":{"rendered":"Integre o reCAPTCHA invis\u00edvel do Google com PHP"},"content":{"rendered":"<p>Adicionar captcha aos formul\u00e1rios do site \u00e9 necess\u00e1rio hoje em dia. Caso contr\u00e1rio, sua caixa de entrada e banco de dados se enchem de toneladas de spams. S\u00f3 desperdi\u00e7a nosso tempo limpando e-mails e tamb\u00e9m ocupa espa\u00e7o extra no banco de dados do servidor.<\/p>\n<p>O reCAPTCHA do Google \u00e9 a melhor maneira de proteger seus formul\u00e1rios contra os bots. Usando o reCAPTCHA, voc\u00ea continuar\u00e1 com seus formul\u00e1rios apenas se houver intera\u00e7\u00f5es humanas reais.<\/p>\n<p>Neste artigo, estudamos como integrar o reCAPTCHA invis\u00edvel do Google aos formul\u00e1rios do seu site com PHP. No caso do reCAPTCHA invis\u00edvel, seus visitantes n\u00e3o precisam resolver quebra-cabe\u00e7as. Ele precisa validar a solicita\u00e7\u00e3o em segundo plano no lado do servidor.<\/p>\n<h3>Registre o site e obtenha chaves de API<\/h3>\n<p>Para come\u00e7ar, registre seu site aqui &#8211; <a href=\"https:\/\/www.google.com\/recaptcha\/admin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/www.google.com\/recaptcha\/admin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/www.google.com\/recaptcha\/admin<\/a>.<\/p>\n<p>Escolha uma op\u00e7\u00e3o &#8216;Emblema reCAPTCHA invis\u00edvel&#8217; em &#8216;reCAPTCHA v2&#8217;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20366-6081e5c0514d1.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20366-6081e5c0514d1.png\" alt=\"Integre o reCAPTCHA invis\u00edvel do Google com PHP\" ><\/a><\/p>\n<p>Adicione seu dom\u00ednio da mesma forma. Voc\u00ea pode inserir quantos dom\u00ednios desejar. Para um servidor local, adiciona o dom\u00ednio como localhost. Ao enviar um formul\u00e1rio, voc\u00ea obter\u00e1 as chaves de API. Copie essas chaves. Ser\u00e1 necess\u00e1rio nas pr\u00f3ximas etapas.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20366-6081e5c0e03db.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20366-6081e5c0e03db.png\" alt=\"Integre o reCAPTCHA invis\u00edvel do Google com PHP\" ><\/a><\/p>\n<h3>Integre o reCAPTCHA invis\u00edvel do Google<\/h3>\n<p>Para adicionar um reCAPTCHA invis\u00edvel no formul\u00e1rio, \u00e9 necess\u00e1ria uma abordagem um pouco diferente. Temos que passar os atributos de dados para o bot\u00e3o e enviar o formul\u00e1rio usando JavaScript da seguinte maneira.<\/p>\n<pre><code>&lt;form method=\"post\" id=\"userForm\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" class=\"form-control\" name=\"fullname\" placeholder=\"Enter full name\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;button class=\"g-recaptcha btn btn-primary\" data-sitekey=\"YOUR_SITE_KEY\" data-callback=\"submitForm\"&gt;Submit&lt;\/button&gt;&lt;\/p&gt;\n&lt;\/form&gt;\n\u00a0\n&lt;script src='https:\/\/www.google.com\/recaptcha\/api.js'&gt;&lt;\/script&gt;\n&lt;script&gt;\nfunction submitForm() {\n\u00a0\u00a0\u00a0\u00a0document.getElementById('userForm').submit();\n}\n&lt;\/script&gt;<\/code><\/pre>\n<p>Este c\u00f3digo adiciona o reCAPTCHA invis\u00edvel ao seu formul\u00e1rio. Se voc\u00ea recarregar a p\u00e1gina, ver\u00e1 o logotipo reCAPTCHA no canto inferior direito da p\u00e1gina.<\/p>\n<p>Aqui, passamos a chave do site reCAPTCHA para o atributo &#8216;data-sitekey&#8217; e o nome do m\u00e9todo &#8216;submitForm&#8217; para o atributo &#8216;data-callback&#8217;. Quando o usu\u00e1rio clica no bot\u00e3o, ele chama o m\u00e9todo de retorno de chamada que envia um formul\u00e1rio usando JavaScript.<\/p>\n<p>Agora, \u00e9 hora de valida\u00e7\u00e3o do lado do servidor. Verificaremos o valor da resposta reCAPTCHA em rela\u00e7\u00e3o ao URL da API do Google da seguinte maneira.<\/p>\n<pre><code>if (isset($_POST['g-recaptcha-response'])) {\n\u00a0\u00a0\u00a0\u00a0$secret_key = 'YOUR_SECRET_KEY';\n\u00a0\u00a0\u00a0\u00a0$url = 'https:\/\/www.google.com\/recaptcha\/api\/siteverify?secret='.$secret_key.'&amp;response='.$_POST['g-recaptcha-response'];\n\u00a0\u00a0\u00a0\u00a0$curl = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($curl, CURLOPT_URL, $url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($curl, CURLOPT_HEADER, false);\n\u00a0\u00a0\u00a0\u00a0$data = curl_exec($curl);\n\u00a0\u00a0\u00a0\u00a0curl_close($curl);\n\u00a0\u00a0\u00a0\u00a0$responseCaptchaData = json_decode($data);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if($responseCaptchaData-&gt;success) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Captcha verified';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/proceed with form values\n\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Verification failed';\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Quando um ser humano real envia seu formul\u00e1rio, ele gera uma resposta reCAPTCHA que, em seguida, o c\u00f3digo acima verifica com a API do Google. Se o formul\u00e1rio for enviado por meio de bots, a verifica\u00e7\u00e3o acima falhar\u00e1. Voc\u00ea deve prosseguir com o formul\u00e1rio apenas no caso de uma resposta bem-sucedida.<\/p>\n<p>Nosso c\u00f3digo final \u00e9 o seguinte.<\/p>\n<pre><code>&lt;?php\nif (isset($_POST['g-recaptcha-response'])) {\n\u00a0\u00a0\u00a0\u00a0$secret_key = 'YOUR_SECRET_KEY';\n\u00a0\u00a0\u00a0\u00a0$url = 'https:\/\/www.google.com\/recaptcha\/api\/siteverify?secret='.$secret_key.'&amp;response='.$_POST['g-recaptcha-response'];\n\u00a0\u00a0\u00a0\u00a0$curl = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($curl, CURLOPT_URL, $url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($curl, CURLOPT_HEADER, false);\n\u00a0\u00a0\u00a0\u00a0$data = curl_exec($curl);\n\u00a0\u00a0\u00a0\u00a0curl_close($curl);\n\u00a0\u00a0\u00a0\u00a0$responseCaptchaData = json_decode($data);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if($responseCaptchaData-&gt;success) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Captcha verified';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/proceed with form values\n\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Verification failed';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;\n&lt;form method=\"post\" id=\"userForm\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" class=\"form-control\" name=\"fullname\" placeholder=\"Enter full name\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;button class=\"g-recaptcha btn btn-primary\" data-sitekey=\"YOUR_SITE_KEY\" data-callback=\"submitForm\"&gt;Submit&lt;\/button&gt;&lt;\/p&gt;\n&lt;\/form&gt;\n\u00a0\n&lt;script src='https:\/\/www.google.com\/recaptcha\/api.js'&gt;&lt;\/script&gt;\n&lt;script&gt;\nfunction submitForm() {\n\u00a0\u00a0\u00a0\u00a0document.getElementById('userForm').submit();\n}\n&lt;\/script&gt;<\/code><\/pre>\n<p>\u00c9 isso! Desfrute de formul\u00e1rios gratuitos de spam em seu site. Eu gostaria de ouvir seus pensamentos e sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/usando-o-google-recaptcha-em-formularios-de-seu-site-com-php\/\" title=\"Usando o Google reCAPTCHA em seus formul\u00e1rios de site com PHP\">Usando o Google reCAPTCHA em seus formul\u00e1rios de site com PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/valide-o-google-recaptcha-usando-javascript\/\" title=\"Valide o reCAPTCHA do Google usando JavaScript\">Valide o reCAPTCHA do Google usando JavaScript<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/um-guia-para-adicionar-o-google-recaptcha-v3-ao-seu-site-laravel\/\" title=\"Um guia para adicionar o Google reCAPTCHA v3 ao seu site Laravel\">Um guia para adicionar o Google reCAPTCHA v3 ao seu site Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea deseja integrar o reCAPTCHA invis\u00edvel do Google ao formul\u00e1rio do seu site? Neste artigo, mostro como adicionar e verificar o invis\u00edvel<\/p>\n","protected":false},"author":1,"featured_media":21642,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-28145","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=28145"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28145\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21642"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}