{"id":28943,"date":"2021-06-03T17:53:00","date_gmt":"2021-06-03T14:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28943"},"modified":"2021-10-18T03:37:36","modified_gmt":"2021-10-18T00:37:36","slug":"zintegruj-google-invisible-recaptcha-z-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/zintegruj-google-invisible-recaptcha-z-php\/","title":{"rendered":"Zintegruj Google Invisible reCAPTCHA z PHP"},"content":{"rendered":"<p>Dodanie captcha do formularzy na stronie jest w dzisiejszych czasach niezb\u0119dne. W przeciwnym razie Twoja skrzynka odbiorcza i baza danych zape\u0142niaj\u0105 si\u0119 tonami spamu. Po prostu marnuje nasz czas na czyszczenie wiadomo\u015bci e-mail, a tak\u017ce zajmuje dodatkowe miejsce w bazie danych serwera.<\/p>\n<p>Google reCAPTCHA to lepszy spos\u00f3b na ochron\u0119 formularzy przed botami. U\u017cywaj\u0105c reCAPTCHA, b\u0119dziesz kontynuowa\u0142 swoje formularze tylko wtedy, gdy b\u0119d\u0105 mia\u0142y rzeczywiste interakcje mi\u0119dzyludzkie.<\/p>\n<p>W tym artykule dowiemy si\u0119, jak zintegrowa\u0107 Google Invisible reCAPTCHA w formularzach Twojej witryny z PHP. W przypadku Invisible reCAPTCHA Twoi go\u015bcie nie musz\u0105 rozwi\u0105zywa\u0107 zagadek. Musi zweryfikowa\u0107 \u017c\u0105danie w tle po stronie serwera.<\/p>\n<h3>Zarejestruj witryn\u0119 i uzyskaj klucze API<\/h3>\n<p>Aby rozpocz\u0105\u0107, zarejestruj swoj\u0105 witryn\u0119 tutaj \u2013 <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>Wybierz opcj\u0119 \u201eNiewidoczna odznaka reCAPTCHA&quot; z \u201ereCAPTCHA v2&#8243;.<\/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=\"Zintegruj Google Invisible reCAPTCHA z PHP\" ><\/a><\/p>\n<p>Dodaj swoj\u0105 domen\u0119 w tym samym formularzu. Mo\u017cesz wstawi\u0107 tyle domen, ile chcesz. Dla serwera lokalnego dodaje domen\u0119 jako localhost. Po przes\u0142aniu formularza otrzymasz klucze API. Skopiuj te klucze. B\u0119dzie to wymagane w kolejnych krokach.<\/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=\"Zintegruj Google Invisible reCAPTCHA z PHP\" ><\/a><\/p>\n<h3>Zintegruj Google Invisible reCAPTCHA<\/h3>\n<p>Aby doda\u0107 Invisible reCAPTCHA w formularzu, wymaga nieco innego podej\u015bcia. Musimy przekaza\u0107 atrybuty danych do przycisku i przes\u0142a\u0107 formularz za pomoc\u0105 JavaScript w nast\u0119puj\u0105cy spos\u00f3b.<\/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>Ten kod dodaje Invisible reCAPTCHA do twojego formularza. Je\u015bli ponownie za\u0142adujesz stron\u0119, zobaczysz logo reCAPTCHA w prawym dolnym rogu strony.<\/p>\n<p>Tutaj przekazali\u015bmy klucz witryny reCAPTCHA do atrybutu \u201edata-sitekey&#8221;, a nazw\u0119 metody \u201esubmitForm&#8221; do atrybutu \u201edata-callback&#8221;. Gdy u\u017cytkownik kliknie przycisk, wywo\u0142uje metod\u0119 wywo\u0142ania zwrotnego, kt\u00f3ra przesy\u0142a formularz za pomoc\u0105 JavaScript.<\/p>\n<p>Teraz nadszed\u0142 czas na weryfikacj\u0119 po stronie serwera. Zweryfikujemy warto\u015b\u0107 odpowiedzi reCAPTCHA wzgl\u0119dem adresu URL interfejsu API Google w nast\u0119puj\u0105cy spos\u00f3b.<\/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>Kiedy prawdziwy cz\u0142owiek przesy\u0142a Tw\u00f3j formularz, generuje odpowied\u017a reCAPTCHA, kt\u00f3r\u0105 nast\u0119pnie powy\u017cszy kod weryfikuje za pomoc\u0105 Google API. Je\u015bli formularz zostanie przes\u0142any przez boty, powy\u017csza weryfikacja nie powiedzie si\u0119. Kontynuuj wype\u0142nianie formularza tylko w przypadku pozytywnej odpowiedzi.<\/p>\n<p>Nasz ostateczny kod jest nast\u0119puj\u0105cy.<\/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>Ot\u00f3\u017c \u200b\u200bto! Korzystaj z formularzy wolnych od spamu w swojej witrynie. Chcia\u0142bym us\u0142ysze\u0107 wasze przemy\u015blenia i sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/korzystanie-z-google-recaptcha-w-formularzach-witryny-z-php\/\" title=\"Korzystanie z Google reCAPTCHA w formularzach witryny z PHP\">Korzystanie z Google reCAPTCHA w formularzach witryny z PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/zweryfikuj-google-recaptcha-za-pomoca-javascript\/\" title=\"Zweryfikuj Google reCAPTCHA za pomoc\u0105 JavaScript\">Zweryfikuj Google reCAPTCHA za pomoc\u0105 JavaScript<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przewodnik-po-dodaniu-google-recaptcha-v3-do-twojej-witryny-laravel\/\" title=\"Przewodnik po dodaniu Google reCAPTCHA v3 do Twojej witryny Laravel\">Przewodnik po dodaniu Google reCAPTCHA v3 do Twojej witryny Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czy chcesz zintegrowa\u0107 Google Invisible reCAPTCHA z formularzem swojej witryny? W tym artykule poka\u017c\u0119 jak dodawa\u0107 i weryfikowa\u0107 niewidoczne<\/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":[277],"tags":[847],"class_list":["post-28943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=28943"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28943\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21642"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=28943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=28943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=28943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}