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> @endif
Saat 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