Kuidas lisada, ma pole Laraveli vormides robot captcha
Kas soovite oma Laraveli vormidesse lisada Google reCAPTCHA? Google reCAPTCHA aitab vorme kaitsta robotite eest, mis säästavad meid rämpsposti eest. Kui te oma vorme ei kaitse, siis arvatavasti saate andmebaasi tonni rämpsposti.
Kirjutamise ajal pakub Google reCAPTCHA 2 versiooni – v2 ja v3. ReCAPTCHA v3 paigutab teie lehtede paremasse alanurka ikooni ja nad kontrollivad taotlusi skooriga. Teiselt poolt kontrollib reCAPTCHA v2 taotlusi väljakutsega. Selles artiklis uurime reCAPTCHA v2 ja kinnitame taotlusi märkeruuduga "Ma ei ole robot".
Miks on vaja Google reCAPTCHA-d?
Interneti-bot on süsteem, mis töötab Internetis automatiseeritud skripte. Nad sihivad veebisaidi vorme rämpsposti saatmiseks andmebaasi. Põhimõtteliselt töötab see süsteem palju kiiremini kui ainult inimesed. Soovime alati, et meie veebisaidi vormidega suhtleks tõeline inimene, mitte robot.
Google reCAPTCHA lisamisega saame kaitsta oma veebisaidi vorme nende Interneti-robotite, nende rämpsposti ja väärkasutuse eest. ReCAPTCHA seatud väljakutset on automatiseeritud süsteemil võimatu lahendada. Ja teie vormi ei esitata enne, kui väljakutse on lahendatud. Inimene saab need probleemid hõlpsasti lahendada ja vormi esitada.
Seadistage Google reCAPTCHA oma Laraveli veebisaidil
Alustamiseks peate saidi kõigepealt Google’is registreerima. Valige märkeruut reCAPTCHA v2 ja "Ma ei ole robot", nagu on näidatud alloleval ekraanipildil.
Saidi registreerimisel kopeerige saidi võti ja salajane võti, mida me hetkega vajame.
Peame Laraveli projekti lisama reCAPTCHA. Ülesande täitmiseks kasutan anhskohbo / no-captcha teeki.
Avage projekti juurkataloogis käsuviip ja käivitage käsk:
composer require anhskohbo/no-captcha
Avage fail ‘config / app.php’ ja lisage allpool olev rida ‘pakkujate’ massiivi.
AnhskohboNoCaptchaNoCaptchaServiceProvider::class,
Klassi alias lisamine aliaside massiivi:
'NoCaptcha' => AnhskohboNoCaptchaFacadesNoCaptcha::class,
Avaldage konfiguratsioonifail käsuga:
php artisan vendor:publish --provider="AnhskohboNoCaptchaNoCaptchaServiceProvider"
Järgmisena avage .env
fail ja määrake reCAPTCHA võtmed järgmiselt.
NOCAPTCHA_SECRET=secret-key
NOCAPTCHA_SITEKEY=site-key
Asendage kindlasti kohanäitajate salajane võti ja saidivõtme tegelike väärtustega.
Tühjendage konfiguratsioonivahemälu, käivitades alloleva käsu.
php artisan config:clear
Google reCAPTCHA lisamine Laraveli vormile
Selles etapis olete reCAPTCHA jaoks vajaliku põhiseadistusega lõpule jõudnud. Nüüd kirjutame mõne koodi ja paneme selle toimima.
Avage oma vaatefail, kuhu soovite lisada ma pole robot. Inicialiseerige JS-allikas labafaili ülaosas järgmiselt:
{!! NoCaptcha::renderJs() !!}
Lisage allpool üks rida lause selles kohas, kus soovite reCAPTCHA märkeruudu kuvada. Parim koht on enne nuppu Esita.
{!! NoCaptcha::display() !!}
Näitena loome mõne väljaga vormi ja lisame sellele allpool oleva koodi abil reCAPTCHA.
{!! NoCaptcha::renderJs() !!}
@if ($errors->has('g-recaptcha-response'))
<span class="help-block">
<strong>{{ $errors->first('g-recaptcha-response') }}</strong>
</span>
@endif
<form action="{{ url('ROUTE_HERE') }}" method="post">
<p>Name: <input type="text" name="fullname" /></p>
<p>Email: <input type="email" name="email" /></p>
<p>Message: <textarea name="message"></textarea></p>
{!! NoCaptcha::display() !!}
{{ csrf_field() }}
<p><input type="submit" name="submit" value="Submit" /></p>
</form>
Pärast ülaltoodud ridade lisamist näete, et reCAPTCHA ilmub umbes nagu allpool oleval ekraanipildil näidatud.
Ülaltoodud koodi lisasin ka koodi, mis kuvab vea, kui see ilmneb reCAPTCHA valideerimisel.
Nüüd peame vormi esitamisel reCAPTCHA kinnitama. Selle saavutamiseks kasutan Laraveli validaatorit järgmiselt.
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ContactController extends Controller
{
...
...
public function store(Request $request)
{
$messages = [
'g-recaptcha-response.required' => 'You must check the reCAPTCHA.',
'g-recaptcha-response.captcha' => 'Captcha error! try again later or contact site admin.',
];
$validator = Validator::make($request->all(), [
'g-recaptcha-response' => 'required|captcha'
], $messages);
if ($validator->fails()) {
return redirect('ROUTE_HERE')
->withErrors($validator)
->withInput();
}
// process the form
}
}
Siia lisasin fassaadi ‘Validator’ ja reCAPTCHA valideerimise meetodi ‘store’. Kui valideerimine ebaõnnestub, viskab see vea.
See selleks! Olete reCAPTCHA v2 edukalt lisanud Laraveli vormi märkeruuduga Ma pole robot. Nüüd esitatakse teie vorm alles siis, kui külastaja on lahendanud reCAPTCHA väljakutse.