Untuk Laravel 4 gunakan cabang v1.
composer require anhskohbo/no-captcha
CATATAN Paket ini mendukung fitur penemuan otomatis Laravel 5.5 dan yang lebih baru, jadi lewati instruksi Setup ini jika Anda menggunakan Laravel 5.5 dan yang lebih baru.
Di app/config/app.php tambahkan yang berikut ini:
1- Penyedia Layanan ke array penyedia:
AnhskohboNoCaptchaNoCaptchaServiceProvider::kelas,
2- Alias kelas ke array alias :
'NoCaptcha' => AnhskohboNoCaptchaFacadesNoCaptcha::kelas,
3- Publikasikan file konfigurasi
php artisan vendor:publish --provider="AnhskohboNoCaptchaNoCaptchaServiceProvider" Tambahkan NOCAPTCHA_SECRET dan NOCAPTCHA_SITEKEY di file .env :
NOCAPTCHA_SECRET=secret-key NOCAPTCHA_SITEKEY=site-key
(Anda dapat memperolehnya dari sini)
Dengan opsi bawaan:
{!! Tanpa Captcha::renderJs() !!}Dengan dukungan bahasa atau opsi onloadCallback:
{!! NoCaptcha::renderJs('fr', benar, 'recaptchaCallback') !!}Widget bawaan :
{!! Tanpa Captcha::display() !!}Dengan atribut khusus (tema, ukuran, panggilan balik ...):
{!! NoCaptcha::display(['tema-data' => 'gelap']) !!}ReCAPTCHA tidak terlihat menggunakan tombol kirim:
{!! NoCaptcha::displaySubmit('id-formulir-saya', 'kirim sekarang!', ['tema-data' => 'gelap']) !!}Perhatikan bahwa id formulir diperlukan dalam metode ini agar panggilan balik yang dibuat secara otomatis dapat mengirimkan formulir pada verifikasi captcha yang berhasil.
Tambahkan 'g-recaptcha-response' => 'required|captcha' ke array aturan :
$validasi = Validator::make(Input::all(), [ 'g-recaptcha-response' => 'wajib|captcha']);
Tambahkan nilai berikut ke array custom dalam file bahasa validation :
'custom' => ['g-recaptcha-response' => ['required' => 'Harap verifikasi bahwa Anda bukan robot.','captcha' => 'Captcha error! coba lagi nanti atau hubungi admin situs.',
],
], Kemudian periksa kesalahan captcha di Form :
@if ($kesalahan->memiliki('g-recaptcha-response'))
<span class="bantuan-blok">
<strong>{{ $errors->first('g-recaptcha-response') }}</strong>
</span>
@endifSaat menggunakan fungsionalitas Pengujian Laravel, Anda perlu meniru respons untuk elemen formulir captcha.
Jadi untuk pengujian formulir apa pun yang melibatkan captcha, Anda dapat melakukannya dengan meniru perilaku fasad:
// mencegah kesalahan validasi pada captchaNoCaptcha::shouldReceive('verifyResponse')
->sekali()
->andReturn(true);// berikan masukan tersembunyi untuk validasi 'wajib' AndaNoCaptcha::shouldReceive('display')
->zeroOrMoreTimes()
->andReturn('<input type="hidden" name="g-recaptcha-response" value="1" />');Anda kemudian dapat menguji sisa formulir Anda seperti biasa.
Saat menggunakan pengujian HTTP, Anda dapat menambahkan g-recaptcha-response ke isi permintaan untuk validasi 'wajib':
// mencegah kesalahan validasi pada captchaNoCaptcha::shouldReceive('verifyResponse')
->sekali()
->andReturn(true);// Permintaan POST, dengan isi permintaan termasuk g-recaptcha-response$response = $this->json('POST', '/register', ['g-recaptcha-response' => ' 1','nama' => 'John','email' => '[email protected]','password' => '123456','password_confirmation' => '123456',
]);Contoh periksa di bawah ini:
<?phprequire_once "vendor/autoload.php";$secret = 'CAPTCHA-SECRET';$sitekey = 'CAPTCHA-SITEKEY';$captcha = new AnhskohboNoCaptchaNoCaptcha($secret, $sitekey);if (! kosong($_POST) ) {var_dump($captcha->verifyResponse($_POST['g-recaptcha-response']));exit();
}?><bentuk tindakan="?" metode="POST"><?php echo $captcha->display(); ?><button type="submit">Kirim</button>
</form><?php echo $captcha->renderJs(); ?>https://github.com/anhskohbo/no-captcha/pulls