{"id":29616,"date":"2021-06-16T16:00:00","date_gmt":"2021-06-16T13:00:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29616"},"modified":"2021-10-17T04:14:44","modified_gmt":"2021-10-17T01:14:44","slug":"en-guide-om-hcaptcha-integration-med-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/en-guide-om-hcaptcha-integration-med-php\/","title":{"rendered":"En guide om hCaptcha-integration med PHP"},"content":{"rendered":"<p>Nyligen fr\u00e5gade en av v\u00e5ra l\u00e4sare om hCapctha-integration p\u00e5 en webbplats. Den <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha<\/a> \u00e4r ett trevligt alternativ till Googles reCAPTCHA tj\u00e4nsten. I den h\u00e4r artikeln studerar vi hur man kan l\u00e4gga till hCapctha med PHP p\u00e5 deras webbplats.<\/p>\n<p>Det rekommenderas alltid att ha en captcha p\u00e5 webbplatsens formul\u00e4r. Spammarna \u00e4r riktigt d\u00e5liga och det frustrerar dig bara. Du vill aldrig sl\u00f6sa bort din v\u00e4rdefulla tid p\u00e5 att rensa falska \/ on\u00f6diga kommentarer.<\/p>\n<p>Med hCaptcha m\u00e5ste anv\u00e4ndaren l\u00f6sa utmaningarna innan han skickar ett formul\u00e4r. Och ditt formul\u00e4r ska bara forts\u00e4tta om captcha klarar verifieringen. Genom att integrera captcha sparar det massor av skr\u00e4ppost fr\u00e5n att komma in i databasen och din inkorg. F\u00f6r att bara en riktig m\u00e4nniska kan l\u00f6sa captcha-pussel.<\/p>\n<p>Med detta sagt, l\u00e5t oss ta en titt p\u00e5 att integrera hCaptcha med PHP. Det kr\u00e4ver att verifiera hCaptcha-svaret p\u00e5 serversidan. Vi skriver koden p\u00e5 serversidan med b\u00e5de cURL och Guzzle-biblioteket. Anv\u00e4ndaren kan anv\u00e4nda n\u00e5gon av dem.<\/p>\n<h3>Komma ig\u00e5ng<\/h3>\n<p>Du m\u00e5ste f\u00f6rst skapa ett konto med <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha-<\/a> tj\u00e4nsten. Till skillnad fr\u00e5n Google reCAPTCHA kan du anv\u00e4nda hCaptcha-nycklar direkt p\u00e5 din webbplats. Du beh\u00f6ver inte registrera din dom\u00e4n hos dem.<\/p>\n<p>Men om du vill kan du l\u00e4gga till din dom\u00e4n genom att klicka p\u00e5 <strong> Ny webbplats-<\/strong> knappen. Det \u00f6ppnar ett formul\u00e4r d\u00e4r du m\u00e5ste skicka din dom\u00e4n till f\u00e4ltet V\u00e4rdnamn.<\/p>\n<p>Klicka sedan p\u00e5 inst\u00e4llningsikonen fr\u00e5n tabellen och ta tag i din webbplatsnyckel.<\/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=\"En guide om hCaptcha-integration med PHP\" ><\/a><\/p>\n<p>F\u00f6r att ta tag i den hemliga nyckeln, klicka p\u00e5 fliken &quot;Inst\u00e4llningar&quot;.<\/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=\"En guide om hCaptcha-integration med PHP\" ><\/a><\/p>\n<p>N\u00e4r du \u00e4r redo med nycklar kr\u00e4vs tv\u00e5 steg att f\u00f6lja. L\u00e4gg f\u00f6rst till hCaptcha i ditt formul\u00e4r. Och validera sedan captcha-svaret p\u00e5 serversidan.<\/p>\n<p>L\u00e5t oss skapa en enkel form och l\u00e4gga till hCaptcha till den enligt f\u00f6ljande.<\/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>H\u00e4r har vi inkluderat hCaptchas JavaScript-bibliotek och lagt till en klass <code>h-captcha<\/code>i div-beh\u00e5llaren. Du m\u00e5ste ocks\u00e5 skicka din webbplatsnyckel till <strong>dataattributet data-sitekey<\/strong>.<\/p>\n<p>Ladda om sidan s\u00e5 visas kryssrutan hCaptcha som l\u00e4ggs till i formul\u00e4ret. L\u00e5t oss nu se hur man validerar captcha-svaret.<\/p>\n<h3>Validera hCaptcha-svar med hj\u00e4lp av cURL<\/h3>\n<p>N\u00e4r en anv\u00e4ndare skickar in ett formul\u00e4r tillsammans med en captcha m\u00e5ste du verifiera captcha-svaret p\u00e5 serversidan. F\u00f6r verifiering m\u00e5ste du skicka POST-f\u00f6rfr\u00e5gningar till hCaptchas slutpunkt <code>https:\/\/hcaptcha.com\/siteverify<\/code>. I POST-beg\u00e4ran \u00e4r parametrarna hemlig nyckel och h-captcha-svar (som kommer fr\u00e5n det inl\u00e4mnade formul\u00e4ret).<\/p>\n<p>I PHP kan vi anv\u00e4nda b\u00e5de cURL och Guzzle f\u00f6r att interagera med den externa servern. N\u00e4r du skickar f\u00f6rfr\u00e5gningar via cURL, se till att cURL-till\u00e4gget \u00e4r aktiverat p\u00e5 din server.<\/p>\n<p>I h\u00e4ndelse av cURL kommer din kod att vara f\u00f6ljande f\u00f6r att verifiera hCaptcha-svaret.<\/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>Ers\u00e4tt platsh\u00e5llaren med det verkliga v\u00e4rdet. I koden ovan kontrollerar vi om <code>success<\/code>variabeln \u00e4r sant i svaret. Om det \u00e4r sant \u00e4r formul\u00e4ret s\u00e4kert att forts\u00e4tta.<\/p>\n<h3>Validera hCaptcha-svar med hj\u00e4lp av Guzzle<\/h3>\n<p><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-anvander-guzzle-en-php-http-klient-for-att-skicka-http-forfragningar\/\" title=\"Guzzle\">Guzzle<\/a> \u00e4r ett alternativ till cURL. Det ger dig mycket renare kod j\u00e4mf\u00f6rt med cURL. Om du anv\u00e4nder Guzzle beh\u00f6ver du inte ha ett cURL-till\u00e4gg p\u00e5 din server.<\/p>\n<p>F\u00f6r att komma ig\u00e5ng m\u00e5ste du f\u00f6rst installera Guzzle-biblioteket i ditt projekt. K\u00f6r kommandot nedan f\u00f6r installation av ett bibliotek.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Efter detta skriver du koden nedan som kommer att verifiera hCAPTCHA-svaret med Guzzle-biblioteket.<\/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>Jag hoppas att du f\u00f6rst\u00e5r hCaptcha-integrationen med PHP med hj\u00e4lp av cURL och Guzzle. Dela dina tankar och f\u00f6rslag i kommentarsektionen nedan.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/text-till-tal-med-amazon-polly-i-php\/\" title=\"Text-till-tal med Amazon Polly i PHP\">Text-till-tal med Amazon Polly i PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-lagger-till-twitter-oauth-inloggning-pa-webbplatsen-med-php\/\" title=\"Hur man l\u00e4gger till Twitter OAuth-inloggning p\u00e5 webbplatsen med PHP\">Hur man l\u00e4gger till Twitter OAuth-inloggning p\u00e5 webbplatsen med PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/komprimera-bilder-for-webbplatsen-med-resmush-it-i-php\/\" title=\"Komprimera bilder f\u00f6r webbplatsen med reSmush.it i PHP\">Komprimera bilder f\u00f6r webbplatsen med reSmush.it i PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vill du veta mer om hCaptcha-integration med PHP? I den h\u00e4r artikeln studerar vi hur man anv\u00e4nder cURL och Guzzle och integrerar hCaptcha p\u00e5 din<\/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":[279],"tags":[850],"class_list":["post-29616","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/29616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=29616"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/29616\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21620"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=29616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=29616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=29616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}