{"id":28656,"date":"2021-06-16T16:06:00","date_gmt":"2021-06-16T13:06:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28656"},"modified":"2021-10-18T03:59:20","modified_gmt":"2021-10-18T00:59:20","slug":"um-guia-de-integracao-do-hcaptcha-com-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/um-guia-de-integracao-do-hcaptcha-com-php\/","title":{"rendered":"Um guia de integra\u00e7\u00e3o do hCaptcha com PHP"},"content":{"rendered":"<p>Recentemente, um de nossos leitores perguntou sobre a integra\u00e7\u00e3o do hCapctha em um site. O <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha<\/a> \u00e9 uma boa alternativa ao servi\u00e7o reCAPTCHA do Google. Neste artigo, estudamos como adicionar hCapctha com PHP em seu site.<\/p>\n<p>\u00c9 sempre recomend\u00e1vel ter um captcha nos formul\u00e1rios do site. Os spams s\u00e3o muito ruins e s\u00f3 te deixam frustrado. Voc\u00ea nunca deseja perder seu valioso tempo limpando coment\u00e1rios falsos \/ desnecess\u00e1rios.<\/p>\n<p>Usando o hCaptcha, o usu\u00e1rio deve resolver os desafios antes de enviar um formul\u00e1rio. E seu formul\u00e1rio deve prosseguir apenas se o captcha passar na verifica\u00e7\u00e3o. Ao integrar o captcha, ele evita que uma tonelada de spams entrem no banco de dados e na sua caixa de entrada. Porque apenas um ser humano de verdade pode resolver os quebra-cabe\u00e7as do captcha.<\/p>\n<p>Dito isso, vamos dar uma olhada na integra\u00e7\u00e3o do hCaptcha com o PHP. \u00c9 necess\u00e1rio verificar a resposta do hCaptcha no lado do servidor. Vamos escrever o c\u00f3digo do lado do servidor usando as bibliotecas cURL e Guzzle. O usu\u00e1rio pode usar qualquer um deles.<\/p>\n<h3>Come\u00e7ando<\/h3>\n<p>Voc\u00ea precisa primeiro criar uma conta com o servi\u00e7o <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha<\/a>. Ao contr\u00e1rio do Google reCAPTCHA, voc\u00ea pode usar as chaves hCaptcha diretamente no seu site. Voc\u00ea n\u00e3o precisa registrar seu dom\u00ednio com eles.<\/p>\n<p>Mas se desejar, voc\u00ea pode adicionar seu dom\u00ednio clicando no bot\u00e3o <strong> Novo Site<\/strong>. Ele abrir\u00e1 um formul\u00e1rio onde voc\u00ea deve passar seu dom\u00ednio para o campo Hostnames.<\/p>\n<p>Em seguida, clique no \u00edcone de configura\u00e7\u00f5es da mesa e pegue a chave do seu site.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20195-6081cb5f289f4.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-20195-6081cb5f289f4.png\" alt=\"Um guia de integra\u00e7\u00e3o do hCaptcha com PHP\" ><\/a><\/p>\n<p>Para obter a chave secreta, clique na guia &#8216;Configura\u00e7\u00f5es&#8217;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20195-6081cb5fbc9c8.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-20195-6081cb5fbc9c8.png\" alt=\"Um guia de integra\u00e7\u00e3o do hCaptcha com PHP\" ><\/a><\/p>\n<p>Quando voc\u00ea estiver pronto com as chaves, h\u00e1 2 etapas necess\u00e1rias a seguir. Primeiro, adicione o hCaptcha em seu formul\u00e1rio. E, em seguida, valide a resposta do captcha no lado do servidor.<\/p>\n<p>Vamos criar um formul\u00e1rio simples e adicionar hCaptcha a ele da seguinte maneira.<\/p>\n<pre><code>&lt;form action=\"\" method=\"POST\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" name=\"email\" placeholder=\"Email\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"password\" name=\"password\" placeholder=\"Password\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"h-captcha\" data-sitekey=\"YOUR_SITE_KEY\"&gt;&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;br \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;\n&lt;script src=\"https:\/\/hcaptcha.com\/1\/api.js\" async defer&gt;&lt;\/script&gt;<\/code><\/pre>\n<p>Aqui, inclu\u00edmos a biblioteca JavaScript de hCaptcha e adicionamos uma classe <code>h-captcha<\/code>ao cont\u00eainer div. Voc\u00ea tamb\u00e9m precisa passar a chave do seu site para a chave do site de dados do atributo de <strong>dados<\/strong>.<\/p>\n<p>Recarregue a p\u00e1gina e voc\u00ea dever\u00e1 ver a caixa de sele\u00e7\u00e3o hCaptcha adicionada ao formul\u00e1rio. Vamos ver agora como validar a resposta do captcha.<\/p>\n<h3>Validar a resposta hCaptcha usando cURL<\/h3>\n<p>Quando um usu\u00e1rio envia um formul\u00e1rio junto com um captcha, voc\u00ea precisa verificar a resposta do captcha no lado do servidor. Para verifica\u00e7\u00e3o, voc\u00ea deve enviar solicita\u00e7\u00f5es POST para o endpoint do hCaptcha <code>https:\/\/hcaptcha.com\/siteverify<\/code>. Na solicita\u00e7\u00e3o POST, os par\u00e2metros s\u00e3o chave secreta e h-captcha-response (que vem do formul\u00e1rio enviado).<\/p>\n<p>Em PHP, podemos usar cURL e Guzzle para interagir com o servidor externo. Ao enviar solicita\u00e7\u00f5es por meio de cURL, certifique-se de que a extens\u00e3o cURL esteja habilitada em seu servidor.<\/p>\n<p>No caso do cURL, seu c\u00f3digo ser\u00e1 o seguinte para verificar a resposta do hCaptcha.<\/p>\n<pre><code>&lt;?php\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\u00a0\u00a0$data = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; \"YOUR_SECRET_KEY\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'response' =&gt; $_POST['h-captcha-response']\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init();\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_URL, \"https:\/\/hcaptcha.com\/siteverify\");\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POST, true);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0$response = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0$responseData = json_decode($response);\n\u00a0\u00a0\u00a0\u00a0if($responseData-&gt;success) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ proceed the form\n\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Robot verification failed, please try again.';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Substitua o marcador pelo valor real. No c\u00f3digo acima, estamos verificando se a <code>success<\/code>vari\u00e1vel \u00e9 verdadeira na resposta. Se for verdade, o formul\u00e1rio pode prosseguir com seguran\u00e7a.<\/p>\n<h3>Validar a resposta hCaptcha usando Guzzle<\/h3>\n<p><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-usar-o-guzzle-um-cliente-php-http-para-enviar-solicitacoes-http\/\" title=\"Guzzle\">Guzzle<\/a> \u00e9 uma alternativa ao cURL. Ele fornece um c\u00f3digo muito mais limpo em compara\u00e7\u00e3o com cURL. Se voc\u00ea estiver usando o Guzzle, n\u00e3o precisa ter uma extens\u00e3o cURL em seu servidor.<\/p>\n<p>Para come\u00e7ar, voc\u00ea precisa primeiro instalar a biblioteca Guzzle em seu projeto. Execute o comando abaixo para a instala\u00e7\u00e3o de uma biblioteca.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Depois disso, escreva o c\u00f3digo abaixo que verificar\u00e1 a resposta do hCAPTCHA usando a biblioteca Guzzle.<\/p>\n<pre><code>&lt;?php\nrequire_once 'vendor\/autoload.php';\n\u00a0\nuse GuzzleHttpClient;\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/hcaptcha.com',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$response = $client-&gt;request('POST', '\/siteverify', [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'form_params' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; \"YOUR_SECRET_KEY\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'response' =&gt; $_POST['h-captcha-response']\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$body = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0$arr_body = json_decode($body);\n\u00a0\u00a0\u00a0\u00a0if($arr_body-&gt;success) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ proceed the form\n\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo 'Robot verification failed, please try again.';\n\u00a0\u00a0\u00a0\u00a0}\n}\n?&gt;<\/code><\/pre>\n<p>Espero que voc\u00ea entenda a integra\u00e7\u00e3o do hCaptcha com PHP usando cURL e Guzzle. Por favor, compartilhe 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\/text-to-speech-usando-amazon-polly-em-php\/\" title=\"Text-To-Speech usando Amazon Polly em PHP\">Text-To-Speech usando Amazon Polly em PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-adicionar-login-oauth-do-twitter-em-um-site-com-php\/\" title=\"Como adicionar login OAuth do Twitter em um site com PHP\">Como adicionar login OAuth do Twitter em um site com PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/compactar-imagens-para-site-usando-resmush-it-em-php\/\" title=\"Compactar imagens para site usando reSmush.it em PHP\">Compactar imagens para site usando reSmush.it em PHP<\/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>Quer saber mais sobre a integra\u00e7\u00e3o do hCaptcha com PHP? Neste artigo, estudamos como usar cURL e Guzzle e integrar hCaptcha em seu<\/p>\n","protected":false},"author":1,"featured_media":21620,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-28656","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\/28656","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=28656"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28656\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21620"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}