{"id":25926,"date":"2021-06-16T15:59:00","date_gmt":"2021-06-16T12:59:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25926"},"modified":"2021-10-18T02:03:51","modified_gmt":"2021-10-17T23:03:51","slug":"un-guide-sur-l-integration-de-hcaptcha-avec-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/un-guide-sur-l-integration-de-hcaptcha-avec-php\/","title":{"rendered":"Un guide sur l&rsquo;int\u00e9gration de hCaptcha avec PHP"},"content":{"rendered":"<p>R\u00e9cemment, l&rsquo;un de nos lecteurs a pos\u00e9 des questions sur l&rsquo;int\u00e9gration de hCapctha sur un site Web. Le <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha<\/a> est une belle alternative au service Google reCAPTCHA. Dans cet article, nous \u00e9tudions comment ajouter hCapctha avec PHP sur leur site Web.<\/p>\n<p>Il est toujours recommand\u00e9 d&rsquo;avoir un captcha sur les formulaires du site. Les spams sont vraiment mauvais et cela vous frustre. Vous ne souhaitez jamais perdre votre temps pr\u00e9cieux \u00e0 effacer des commentaires faux\/inutiles.<\/p>\n<p>En utilisant hCaptcha, l&rsquo;utilisateur doit r\u00e9soudre les d\u00e9fis avant de soumettre un formulaire. Et votre formulaire ne devrait continuer que si le captcha r\u00e9ussit sa v\u00e9rification. En int\u00e9grant le captcha, il \u00e9vite \u00e0 une tonne de spams d&rsquo;entrer dans la base de donn\u00e9es et votre bo\u00eete de r\u00e9ception. Parce que seul un vrai humain peut r\u00e9soudre les \u00e9nigmes du captcha.<\/p>\n<p>Cela dit, jetons un coup d&rsquo;\u0153il \u00e0 l&rsquo;int\u00e9gration de hCaptcha avec PHP. Il n\u00e9cessite de v\u00e9rifier la r\u00e9ponse hCaptcha c\u00f4t\u00e9 serveur. Nous \u00e9crirons le code c\u00f4t\u00e9 serveur en utilisant \u00e0 la fois cURL et la biblioth\u00e8que Guzzle. L&rsquo;utilisateur peut utiliser n&rsquo;importe lequel d&rsquo;entre eux.<\/p>\n<h3>Commencer<\/h3>\n<p>Vous devez d&rsquo;abord cr\u00e9er un compte avec le service <a href=\"https:\/\/www.hcaptcha.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">hCaptcha<\/a>. Contrairement \u00e0 Google reCAPTCHA, vous pouvez utiliser les cl\u00e9s hCaptcha directement sur votre site Web. Vous n&rsquo;avez pas besoin d&rsquo;enregistrer votre domaine avec eux.<\/p>\n<p>Mais si vous le souhaitez, vous pouvez ajouter votre domaine en cliquant sur le bouton <strong> Nouveau site<\/strong>. Cela ouvrira un formulaire dans lequel vous devrez transmettre votre domaine au champ Hostnames.<\/p>\n<p>Ensuite, cliquez sur l&rsquo;ic\u00f4ne des param\u00e8tres dans le tableau et r\u00e9cup\u00e9rez la cl\u00e9 de votre 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=\"Un guide sur l&#039;int\u00e9gration de hCaptcha avec PHP\" ><\/a><\/p>\n<p>Pour r\u00e9cup\u00e9rer la cl\u00e9 secr\u00e8te, cliquez sur l&rsquo;onglet &quot;Param\u00e8tres&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=\"Un guide sur l&#039;int\u00e9gration de hCaptcha avec PHP\" ><\/a><\/p>\n<p>Une fois que vous \u00eates pr\u00eat avec les cl\u00e9s, il y a 2 \u00e9tapes \u00e0 suivre. Tout d&rsquo;abord, ajoutez le hCaptcha sur votre formulaire. Et puis validez la r\u00e9ponse captcha c\u00f4t\u00e9 serveur.<\/p>\n<p>Cr\u00e9ons un formulaire simple et ajoutons-y hCaptcha comme suit.<\/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>Ici, nous avons inclus la biblioth\u00e8que JavaScript de hCaptcha et ajout\u00e9 une classe <code>h-captcha<\/code>au conteneur div. Vous devez \u00e9galement transmettre votre cl\u00e9 de site \u00e0 l&rsquo;attribut de <strong>donn\u00e9es data-sitekey<\/strong>.<\/p>\n<p>Rechargez la page et vous devriez maintenant voir la case \u00e0 cocher hCaptcha ajout\u00e9e au formulaire. Voyons maintenant comment valider la r\u00e9ponse captcha.<\/p>\n<h3>Valider la r\u00e9ponse hCaptcha \u00e0 l&rsquo;aide de cURL<\/h3>\n<p>Lorsqu&rsquo;un utilisateur soumet un formulaire avec un captcha, vous devez v\u00e9rifier la r\u00e9ponse captcha c\u00f4t\u00e9 serveur. Pour v\u00e9rification, vous devez envoyer des requ\u00eates POST au point de terminaison du hCaptcha <code>https:\/\/hcaptcha.com\/siteverify<\/code>. Dans la requ\u00eate POST, les param\u00e8tres sont la cl\u00e9 secr\u00e8te et h-captcha-response (qui provient du formulaire soumis).<\/p>\n<p>En PHP, nous pouvons utiliser \u00e0 la fois cURL et Guzzle pour interagir avec le serveur externe. Lors de l&rsquo;envoi de requ\u00eates via cURL, assurez-vous que l&rsquo;extension cURL est activ\u00e9e sur votre serveur.<\/p>\n<p>En cas de cURL, votre code sera le suivant pour v\u00e9rifier la r\u00e9ponse 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>Remplacez l&rsquo;espace r\u00e9serv\u00e9 par la valeur r\u00e9elle. Dans le code ci-dessus, nous v\u00e9rifions si la <code>success<\/code>variable est vraie dans la r\u00e9ponse. Si c&rsquo;est vrai, le formulaire peut continuer en toute s\u00e9curit\u00e9.<\/p>\n<h3>Valider la r\u00e9ponse hCaptcha \u00e0 l&rsquo;aide de Guzzle<\/h3>\n<p><a href=\"https:\/\/themewp.inform.click\/fr\/comment-utiliser-guzzle-un-client-http-php-pour-envoyer-des-requetes-http\/\" title=\"Guzzle\">Guzzle<\/a> est une alternative \u00e0 cURL. Il vous fournit un code beaucoup plus propre par rapport \u00e0 cURL. Si vous utilisez Guzzle, vous n&rsquo;avez pas besoin d&rsquo;avoir une extension cURL sur votre serveur.<\/p>\n<p>Pour commencer, vous devez d&rsquo;abord installer la biblioth\u00e8que Guzzle dans votre projet. Ex\u00e9cutez la commande ci-dessous pour l&rsquo;installation d&rsquo;une biblioth\u00e8que.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Apr\u00e8s cela, \u00e9crivez le code ci-dessous qui v\u00e9rifiera la r\u00e9ponse hCAPTCHA \u00e0 l&rsquo;aide de la biblioth\u00e8que 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>J&rsquo;esp\u00e8re que vous comprenez l&rsquo;int\u00e9gration de hCaptcha avec PHP en utilisant cURL et Guzzle. S&rsquo;il vous pla\u00eet partager vos pens\u00e9es et suggestions dans la section commentaires ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/text-to-speech-utilisant-amazon-polly-en-php\/\" title=\"Text-To-Speech utilisant Amazon Polly en PHP\">Text-To-Speech utilisant Amazon Polly en PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-ajouter-une-connexion-twitter-oauth-sur-un-site-web-avec-php\/\" title=\"Comment ajouter une connexion Twitter OAuth sur un site Web avec PHP\">Comment ajouter une connexion Twitter OAuth sur un site Web avec PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/compresser-des-images-pour-un-site-web-a-l-aide-de-resmush-it-en-php\/\" title=\"Compresser des images pour un site Web \u00e0 l&#039;aide de reSmush.it en PHP\">Compresser des images pour un site Web \u00e0 l&rsquo;aide de reSmush.it en PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voulez-vous en savoir plus sur l&rsquo;int\u00e9gration de hCaptcha avec PHP\u00a0? Dans cet article, nous \u00e9tudions comment utiliser cURL et Guzzle et int\u00e9grer hCaptcha sur votre<\/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":[273],"tags":[844],"class_list":["post-25926","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=25926"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25926\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21620"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=25926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=25926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=25926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}