{"id":28913,"date":"2021-06-03T17:44:00","date_gmt":"2021-06-03T14:44:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28913"},"modified":"2021-10-17T16:29:35","modified_gmt":"2021-10-17T13:29:35","slug":"integre-google-invisible-recaptcha-con-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/integre-google-invisible-recaptcha-con-php\/","title":{"rendered":"Integre Google Invisible reCAPTCHA con PHP"},"content":{"rendered":"<p>Hoy en d\u00eda es necesario agregar captcha en los formularios del sitio web. De lo contrario, su bandeja de entrada y su base de datos se llenan de toneladas de spam. Simplemente desperdicia nuestro tiempo en la limpieza de correos electr\u00f3nicos y tambi\u00e9n ocupa espacio adicional en la base de datos del servidor.<\/p>\n<p>Google reCAPTCHA es una mejor manera de proteger sus formularios contra los bots. Con reCAPTCHA, proceder\u00e1 con sus formularios solo si tiene interacciones humanas reales.<\/p>\n<p>En este art\u00edculo, estudiamos c\u00f3mo integrar Google Invisible reCAPTCHA en los formularios de su sitio web con PHP. En el caso de Invisible reCAPTCHA, sus visitantes no necesitan resolver acertijos. Necesita validar la solicitud en segundo plano en el lado del servidor.<\/p>\n<h3>Registre el sitio y obtenga claves API<\/h3>\n<p>Para comenzar, registre su sitio aqu\u00ed &#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>Elija una opci\u00f3n &#8216;Insignia reCAPTCHA invisible&#8217; de &#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 Google Invisible reCAPTCHA con PHP\" ><\/a><\/p>\n<p>Agrega tu dominio de la misma forma. Puede insertar tantos dominios como desee. Para un servidor local, agrega el dominio como localhost. Al enviar un formulario, obtendr\u00e1 las claves API. Copie estas claves. Ser\u00e1 necesario en los siguientes pasos.<\/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 Google Invisible reCAPTCHA con PHP\" ><\/a><\/p>\n<h3>Integre Google Invisible reCAPTCHA<\/h3>\n<p>Para agregar un reCAPTCHA invisible en el formulario, se requiere un enfoque un poco diferente. Tenemos que pasar atributos de datos al bot\u00f3n y enviar el formulario usando JavaScript de la siguiente manera.<\/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 agrega reCAPTCHA invisible en su formulario. Si vuelve a cargar la p\u00e1gina, ver\u00e1 el logotipo de reCAPTCHA en la esquina inferior derecha de la p\u00e1gina.<\/p>\n<p>Aqu\u00ed, hemos pasado la clave del sitio reCAPTCHA al atributo &#8216;data-sitekey&#8217; y el nombre del m\u00e9todo &#8216;submitForm&#8217; al atributo &#8216;data-callback&#8217;. Cuando el usuario hace clic en el bot\u00f3n, llama al m\u00e9todo de devoluci\u00f3n de llamada que env\u00eda un formulario utilizando JavaScript.<\/p>\n<p>Ahora es el momento de la validaci\u00f3n del lado del servidor. Verificaremos el valor de la respuesta reCAPTCHA con la URL de la API de Google de la siguiente manera.<\/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>Cuando un humano real env\u00eda su formulario, genera una respuesta reCAPTCHA que luego el c\u00f3digo anterior verifica con la API de Google. Si el formulario se env\u00eda a trav\u00e9s de bots, la verificaci\u00f3n anterior falla. Debe continuar con el formulario solo en caso de que la respuesta sea correcta.<\/p>\n<p>Nuestro c\u00f3digo final es el siguiente.<\/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>\u00a1Eso es! Disfrute de formularios libres de spam en su sitio web. Me gustar\u00eda escuchar 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\/uso-de-google-recaptcha-en-los-formularios-de-su-sitio-web-con-php\/\" title=\"Uso de Google reCAPTCHA en los formularios de su sitio web con PHP\">Uso de Google reCAPTCHA en los formularios de su sitio web con PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/validar-google-recaptcha-usando-javascript\/\" title=\"Validar Google reCAPTCHA usando JavaScript\">Validar Google reCAPTCHA usando JavaScript<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/una-guia-para-agregar-google-recaptcha-v3-a-su-sitio-web-de-laravel\/\" title=\"Una gu\u00eda para agregar Google reCAPTCHA v3 a su sitio web de Laravel\">Una gu\u00eda para agregar Google reCAPTCHA v3 a su sitio web de Laravel<\/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>\u00bfEst\u00e1 buscando integrar Google Invisible reCAPTCHA en el formulario de su sitio web? En este art\u00edculo, le muestro c\u00f3mo agregar y verificar invisibles<\/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":[271],"tags":[849],"class_list":["post-28913","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\/28913","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=28913"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28913\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21642"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=28913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=28913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=28913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}