{"id":29450,"date":"2021-06-16T16:47:00","date_gmt":"2021-06-16T13:47:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29450"},"modified":"2021-10-17T16:16:36","modified_gmt":"2021-10-17T13:16:36","slug":"una-guia-sobre-la-integracion-de-hcaptcha-con-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/una-guia-sobre-la-integracion-de-hcaptcha-con-php\/","title":{"rendered":"Una gu\u00eda sobre la integraci\u00f3n de hCaptcha con PHP"},"content":{"rendered":"<p>Recientemente, uno de nuestros lectores pregunt\u00f3 sobre la integraci\u00f3n de hCapctha en un sitio web. El <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha<\/a> es una buena alternativa al servicio Google reCAPTCHA. En este art\u00edculo, estudiamos c\u00f3mo se puede agregar hCapctha con PHP en su sitio web.<\/p>\n<p>Siempre se recomienda tener un captcha en los formularios del sitio web. Los spam son realmente malos y simplemente te frustran. Nunca querr\u00e1 perder su valioso tiempo eliminando comentarios falsos \/ innecesarios.<\/p>\n<p>Con hCaptcha, el usuario debe resolver los desaf\u00edos antes de enviar un formulario. Y su formulario debe continuar solo si el captcha pasa su verificaci\u00f3n. Al integrar captcha, evita que un mont\u00f3n de spam ingresen a la base de datos y su bandeja de entrada. Porque solo un humano real puede resolver los acertijos del captcha.<\/p>\n<p>Dicho esto, echemos un vistazo a la integraci\u00f3n de hCaptcha con PHP. Requiere verificar la respuesta de hCaptcha en el lado del servidor. Escribiremos el c\u00f3digo del lado del servidor usando tanto cURL como la biblioteca Guzzle. El usuario puede utilizar cualquiera de ellos.<\/p>\n<h3>Empezando<\/h3>\n<p>Primero debe crear una cuenta con el servicio <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha<\/a>. A diferencia de Google reCAPTCHA, puede utilizar claves hCaptcha directamente en su sitio web. No es necesario que registre su dominio con ellos.<\/p>\n<p>Pero si lo desea, puede agregar su dominio haciendo clic en el bot\u00f3n <strong> Nuevo sitio<\/strong>. Se abrir\u00e1 un formulario en el que debe pasar su dominio al campo Nombres de host.<\/p>\n<p>A continuaci\u00f3n, haga clic en el icono de configuraci\u00f3n de la tabla y tome la clave de su sitio.<\/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=\"Una gu\u00eda sobre la integraci\u00f3n de hCaptcha con PHP\" ><\/a><\/p>\n<p>Para obtener la clave secreta, haga clic en la pesta\u00f1a &#8216;Configuraci\u00f3n&#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=\"Una gu\u00eda sobre la integraci\u00f3n de hCaptcha con PHP\" ><\/a><\/p>\n<p>Una vez que est\u00e9 listo con las llaves, debe seguir 2 pasos. Primero, agregue el hCaptcha en su formulario. Y luego valide la respuesta captcha en el lado del servidor.<\/p>\n<p>Creemos un formulario simple y agreguemos hCaptcha de la siguiente manera.<\/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>Aqu\u00ed hemos incluido la biblioteca JavaScript de hCaptcha y hemos agregado una clase <code>h-captcha<\/code>al contenedor div. Tambi\u00e9n debe pasar la clave de su sitio al atributo de <strong>datos data-sitekey<\/strong>.<\/p>\n<p>Vuelva a cargar la p\u00e1gina y ahora deber\u00eda ver la casilla de verificaci\u00f3n hCaptcha agregada al formulario. Veamos ahora c\u00f3mo validar la respuesta captcha.<\/p>\n<h3>Validar la respuesta de hCaptcha usando cURL<\/h3>\n<p>Cuando un usuario env\u00eda un formulario junto con un captcha, debe verificar la respuesta del captcha en el lado del servidor. Para la verificaci\u00f3n, debe enviar solicitudes POST al punto final de hCaptcha <code>https:\/\/hcaptcha.com\/siteverify<\/code>. En la solicitud POST, los par\u00e1metros son clave secreta y h-captcha-response (que proviene del formulario enviado).<\/p>\n<p>En PHP, podemos usar tanto cURL como Guzzle para interactuar con el servidor externo. Al enviar solicitudes a trav\u00e9s de cURL, aseg\u00farese de que la extensi\u00f3n cURL est\u00e9 habilitada en su servidor.<\/p>\n<p>En caso de cURL, su c\u00f3digo ser\u00e1 el siguiente para verificar la respuesta de 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>Reemplace el marcador de posici\u00f3n con el valor real. En el c\u00f3digo anterior, estamos verificando si la <code>success<\/code>variable es verdadera en la respuesta. Si es cierto, entonces el formulario es seguro para continuar.<\/p>\n<h3>Validar la respuesta de hCaptcha usando Guzzle<\/h3>\n<p><a href=\"https:\/\/themewp.inform.click\/es\/como-utilizar-guzzle-un-cliente-http-php-para-enviar-solicitudes-http\/\" title=\"Guzzle\">Guzzle<\/a> es una alternativa a cURL. Le proporciona un c\u00f3digo mucho m\u00e1s limpio en comparaci\u00f3n con cURL. Si est\u00e1 utilizando Guzzle, no necesita tener una extensi\u00f3n cURL en su servidor.<\/p>\n<p>Para comenzar, primero debe instalar la biblioteca Guzzle en su proyecto. Ejecute el siguiente comando para la instalaci\u00f3n de una biblioteca.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Despu\u00e9s de esto, escriba el c\u00f3digo a continuaci\u00f3n que verificar\u00e1 la respuesta de hCAPTCHA utilizando la 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 comprenda la integraci\u00f3n de hCaptcha con PHP usando cURL y Guzzle. Comparta sus pensamientos y sugerencias en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/conversion-de-texto-a-voz-con-amazon-polly-en-php\/\" title=\"Conversi\u00f3n de texto a voz con Amazon Polly en PHP\">Conversi\u00f3n de texto a voz con Amazon Polly en PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-agregar-un-inicio-de-sesion-de-twitter-oauth-en-un-sitio-web-con-php\/\" title=\"C\u00f3mo agregar un inicio de sesi\u00f3n de Twitter OAuth en un sitio web con PHP\">C\u00f3mo agregar un inicio de sesi\u00f3n de Twitter OAuth en un sitio web con PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/comprimir-imagenes-para-sitios-web-usando-resmush-it-en-php\/\" title=\"Comprimir im\u00e1genes para sitios web usando reSmush.it en PHP\">Comprimir im\u00e1genes para sitios web usando reSmush.it en PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQuieres saber sobre la integraci\u00f3n de hCaptcha con PHP? En este art\u00edculo, estudiamos c\u00f3mo usar cURL y Guzzle e integrar hCaptcha en su<\/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":[271],"tags":[849],"class_list":["post-29450","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/29450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=29450"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/29450\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21620"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=29450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=29450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=29450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}