{"id":24853,"date":"2021-05-26T10:35:00","date_gmt":"2021-05-26T07:35:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24853"},"modified":"2021-10-18T02:13:32","modified_gmt":"2021-10-17T23:13:32","slug":"comment-ajouter-je-ne-suis-pas-un-robot-captcha-dans-laravel-forms","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-ajouter-je-ne-suis-pas-un-robot-captcha-dans-laravel-forms\/","title":{"rendered":"Comment ajouter Je ne suis pas un robot captcha dans Laravel Forms"},"content":{"rendered":"<p>Cherchez-vous \u00e0 ajouter Google reCAPTCHA dans vos formulaires Laravel\u00a0? Google reCAPTCHA aide \u00e0 prot\u00e9ger les formulaires contre les robots qui en r\u00e9sultent pour nous sauver des spams. Si vous ne prot\u00e9gez pas vos formulaires, vous recevez probablement une tonne de spams dans la base de donn\u00e9es.<\/p>\n<p>Au moment de la r\u00e9daction, Google propose 2 versions de reCAPTCHA \u2013 v2 et v3. Le reCAPTCHA v3 place une ic\u00f4ne dans le coin inf\u00e9rieur droit de vos pages et v\u00e9rifie les demandes avec un score. D&rsquo;autre part, reCAPTCHA v2 v\u00e9rifie les demandes avec un d\u00e9fi. Dans cet article, nous \u00e9tudions reCAPTCHA v2 et nous allons valider les requ\u00eates avec la case \u00e0 cocher &quot;Je ne suis pas un robot&quot;.<\/p>\n<h3>Pourquoi avoir besoin de Google reCAPTCHA\u00a0?<\/h3>\n<p>Un bot Internet est un syst\u00e8me qui ex\u00e9cute des scripts automatis\u00e9s sur Internet. Ils ciblent les formulaires du site Web pour envoyer des spams dans la base de donn\u00e9es. Fondamentalement, ce syst\u00e8me fonctionne \u00e0 un rythme beaucoup plus \u00e9lev\u00e9 que les humains seuls. Nous voulons toujours qu&rsquo;un vrai humain interagisse avec les formulaires de notre site Web, pas un bot.<\/p>\n<p>En ajoutant Google reCAPTCHA, nous pouvons prot\u00e9ger les formulaires de notre site Web contre ces robots Internet, leurs spams et leurs abus. Il est impossible pour un syst\u00e8me automatis\u00e9 de r\u00e9soudre le d\u00e9fi pos\u00e9 par reCAPTCHA. Et votre formulaire ne sera pas soumis tant que le d\u00e9fi n&rsquo;est pas r\u00e9solu. Un humain peut facilement r\u00e9soudre ces probl\u00e8mes et soumettre un formulaire.<\/p>\n<h3>Configurez Google reCAPTCHA sur votre site Web Laravel<\/h3>\n<p>Pour commencer, vous devez d&rsquo;abord enregistrer le site sur <a href=\"https:\/\/www.google.com\/recaptcha\/admin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Google<\/a>. Choisissez l&rsquo;option reCAPTCHA v2 et la case \u00e0 cocher \u00ab\u00a0Je ne suis pas un robot\u00a0\u00bb comme indiqu\u00e9 dans la capture d&rsquo;\u00e9cran ci-dessous.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20464-6081f5fd17f3f.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-20464-6081f5fd17f3f.png\" alt=\"Comment ajouter Je ne suis pas un robot captcha dans Laravel Forms\" ><\/a><\/p>\n<p>Lors de l&rsquo;enregistrement du site, copiez la cl\u00e9 du site et la cl\u00e9 secr\u00e8te dont nous aurons besoin dans un instant.<\/p>\n<p>Nous devons ajouter reCAPTCHA dans le projet Laravel. Pour accomplir la t\u00e2che, je vais utiliser la <a href=\"https:\/\/github.com\/anhskohbo\/no-captcha\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioth\u00e8que anhskohbo\/no-captcha<\/a>.<\/p>\n<p>Ouvrez l&rsquo;invite de commande dans le r\u00e9pertoire racine de votre projet et ex\u00e9cutez la commande\u00a0:<\/p>\n<pre><code>composer require anhskohbo\/no-captcha<\/code><\/pre>\n<p>Ouvrez le fichier &lsquo;config\/app.php&rsquo; et ajoutez la ligne ci-dessous au tableau &lsquo;fournisseurs&rsquo;.<\/p>\n<pre><code>AnhskohboNoCaptchaNoCaptchaServiceProvider::class,<\/code><\/pre>\n<p>Ajoutez un alias de classe au tableau d&rsquo;alias\u00a0:<\/p>\n<pre><code>'NoCaptcha' =&gt; AnhskohboNoCaptchaFacadesNoCaptcha::class,<\/code><\/pre>\n<p>Publiez le fichier de configuration \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>php artisan vendor:publish --provider=\"AnhskohboNoCaptchaNoCaptchaServiceProvider\"<\/code><\/pre>\n<p>Ensuite, ouvrez le <code>.env<\/code>fichier et sp\u00e9cifiez les cl\u00e9s reCAPTCHA comme suit.<\/p>\n<pre><code>NOCAPTCHA_SECRET=secret-key\nNOCAPTCHA_SITEKEY=site-key<\/code><\/pre>\n<p>Assurez-vous de remplacer les espaces r\u00e9serv\u00e9s cl\u00e9 secr\u00e8te, cl\u00e9 de site par les valeurs r\u00e9elles.<\/p>\n<p>Videz le cache de configuration en ex\u00e9cutant la commande ci-dessous.<\/p>\n<pre><code>php artisan config:clear <\/code><\/pre>\n<h3>Ajout de Google reCAPTCHA au formulaire dans Laravel<\/h3>\n<p>\u00c0 ce stade, vous avez termin\u00e9 la configuration de base requise pour reCAPTCHA. Maintenant, \u00e9crivons du code et mettons-le en action.<\/p>\n<p>Ouvrez votre fichier de vue o\u00f9 vous souhaitez ajouter la case \u00e0 cocher Je ne suis pas un robot. En haut du fichier blade, initialisez la source JS comme suit\u00a0:<\/p>\n<pre><code>{!! NoCaptcha::renderJs() !!}<\/code><\/pre>\n<p>Ajoutez l&rsquo;instruction sur une seule ligne ci-dessous \u00e0 l&rsquo;endroit o\u00f9 vous souhaitez afficher la case \u00e0 cocher reCAPTCHA. Le meilleur endroit est avant le bouton de soumission.<\/p>\n<pre><code>{!! NoCaptcha::display() !!}<\/code><\/pre>\n<p>\u00c0 titre d&rsquo;exemple, cr\u00e9ons un formulaire avec quelques champs et ajoutons-y reCAPTCHA en utilisant le code ci-dessous.<\/p>\n<pre><code>{!! NoCaptcha::renderJs() !!}\n\u00a0\n@if ($errors-&gt;has('g-recaptcha-response'))\n\u00a0\u00a0\u00a0\u00a0&lt;span class=\"help-block\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;strong&gt;{{ $errors-&gt;first('g-recaptcha-response') }}&lt;\/strong&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/span&gt;\n@endif\n&lt;form action=\"{{ url('ROUTE_HERE') }}\" method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Name: &lt;input type=\"text\" name=\"fullname\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Email: &lt;input type=\"email\" name=\"email\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Message: &lt;textarea name=\"message\"&gt;&lt;\/textarea&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0{!! NoCaptcha::display() !!}\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;&lt;\/p&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Apr\u00e8s avoir ajout\u00e9 les lignes ci-dessus, vous verrez reCAPTCHA appara\u00eetre comme illustr\u00e9 dans la capture d&rsquo;\u00e9cran ci-dessous.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20464-6081f5fd17f3f.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-20464-6081f5fd17f3f.png\" alt=\"Comment ajouter Je ne suis pas un robot captcha dans Laravel Forms\" ><\/a><\/p>\n<p>Dans le code ci-dessus, j&rsquo;ai \u00e9galement ajout\u00e9 un code qui affiche une erreur si elle se produit lors de la validation d&rsquo;un reCAPTCHA.<\/p>\n<p>Maintenant, nous devons valider le reCAPTCHA lors de la soumission du formulaire. Pour y parvenir, j&rsquo;utiliserai <a href=\"https:\/\/laravel.com\/docs\/master\/validation\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Validator<\/a> comme suit.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesValidator;\n\u00a0\nclass ContactController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$messages = [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'g-recaptcha-response.required' =&gt; 'You must check the reCAPTCHA.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'g-recaptcha-response.captcha' =&gt; 'Captcha error! try again later or contact site admin.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$validator = Validator::make($request-&gt;all(), [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'g-recaptcha-response' =&gt; 'required|captcha'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0], $messages);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($validator-&gt;fails()) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('ROUTE_HERE')\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;withErrors($validator)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-&gt;withInput();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ process the form\n\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0 \n}<\/code><\/pre>\n<p>Ici, j&rsquo;ai inclus la fa\u00e7ade &lsquo;Validator&rsquo; et la validation d&rsquo;un reCAPTCHA dans la m\u00e9thode &lsquo;store&rsquo;. S&rsquo;il ne parvient pas \u00e0 valider, il g\u00e9n\u00e9rera une erreur.<\/p>\n<p>C&rsquo;est \u00e7a! Vous avez ajout\u00e9 avec succ\u00e8s reCAPTCHA v2 avec la case \u00e0 cocher Je ne suis pas un robot au formulaire Laravel. D\u00e9sormais, votre formulaire ne sera pas soumis tant que le visiteur n&rsquo;aura pas r\u00e9solu le d\u00e9fi reCAPTCHA.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/enregistrement-de-l-utilisateur-et-systeme-de-connexion-dans-laravel\/\" title=\"Enregistrement de l&#039;utilisateur et syst\u00e8me de connexion dans Laravel\">Enregistrement de l&rsquo;utilisateur et syst\u00e8me de connexion dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/systeme-de-connexion-sociale-utilisant-laravel-socialite\/\" title=\"Syst\u00e8me de connexion sociale utilisant Laravel Socialite\">Syst\u00e8me de connexion sociale utilisant Laravel Socialite<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/integration-de-la-passerelle-de-paiement-authorize-net-dans-laravel\/\" title=\"Int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel\">Int\u00e9gration de la passerelle de paiement Authorize.Net dans Laravel<\/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>Vous voulez impl\u00e9menter le captcha Je ne suis pas un robot dans vos formulaires Laravel\u00a0? Dans cet article, nous vous montrons comment configurer et utiliser google reCaptcha dans Laravel.<\/p>\n","protected":false},"author":1,"featured_media":21671,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-24853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24853","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=24853"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24853\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21671"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}