Formulir kontak dengan validasi kode captcha mungkin berguna untuk memvalidasi pengguna manusia terhadap bot. Dalam tutorial sebelumnya, kami telah melihat cara menambahkan kode captcha dalam bentuk menggunakan PHP . Dalam tutorial ini, kita akan mengintegrasikan reCAPTCHA Google dalam bentuk kontak PHP. Dengan menggunakan kode reCAPTCHA Google ini, kami dapat memvalidasi pengguna manusia dan melindungi pengiriman formulir dari bot.

Dalam contoh ini, saya telah memuat kembali ketergantungan pustaka kode Google reCAPTCHA. Untuk menggunakan pustaka ini, kita perlu mendapatkan kunci API dengan mendaftarkan situs kami . Setelah mendapatkan kunci API, saya mengonfigurasi kunci ini untuk mengintegrasikan kode reCAPTCHA Google. Dalam formulir kontak, kode captcha ditampilkan dan pada formulir kirimkan kode ini divalidasi.
Formulir Kontak dengan Google reCAPTCHA
Kode ini digunakan untuk menunjukkan formulir kontak kepada pengguna dengan kode Google reCAPTCHA. Dalam kode ini, saya telah menyertakan file sumber daya Javascript yang diperlukan dan merender widget reCAPTCHA dengan menggunakan elemen DIV yang diberi tag dengan g-recaptcha .Dalam tag ini, saya telah menetapkan kunci situs API dengan menggunakan atribut data-situs data HTML5 .
Ketika pengguna menyelesaikan kode reCAPTCHA, maka token tanggapan akan dikembalikan. Elemen HTML baru g-recaptcha-response akan dibuat secara dinamis untuk menyimpan token tanggapan pengguna. Token ini kemudian akan diposkan ke kode PHP saat mengirimkan formulir kontak.
<form id = "frmContact" action = "" method = "POST" novalidate = "novalidate"> <div class = "label"> Nama: </ div> <div class = "field"> <input type = "text" id = "name" name = "name" placeholder = "masukkan nama Anda di sini" title = "Silakan masukkan nama Anda" class = "required" diperlukan aria = "benar"> </ div> <div class = "label"> Email: </ div> <div class = "field"> <input type = "text" id = "email" name = "email" placeholder = "masukkan alamat email Anda di sini" title = "Silakan masukkan alamat email Anda" class = "diperlukan email" diperlukan aria = "benar"> </ div> <div class = "label"> Nomor Telepon: </ div> <div class = "field"> <input type = "text" id = "phone" name = "phone" placeholder = "masukkan nomor telepon Anda di sini" title = "Silakan masukkan nomor telepon Anda" class = "required phone" dibutuhkan aria-required = "true"> </ div> <div class = "label"> Komentar: </ div> <div class = "field"> <textarea id = "komentar-konten" name = "konten" placeholder = "masukkan komentar Anda di sini"> </ textarea> </ div> <div class = "g-recaptcha" data-sitekey = "<? php echo SITE_KEY;?>"> </ div> <div id = "mail-status"> </ div> <button type = "Kirim" id = "kirim-pesan" style = "clear: both;"> Kirim Pesan </ tombol> </ form>
Permintaan Google API dari Kode PHP untuk Validasi reCAPTCHA
Kode PHP ini membaca token tanggapan Google reCAPTCHA yang diposkan melalui formulir kontak. Kemudian, mengirim permintaan ke API dengan token tanggapan ini dan kunci rahasia API. Setelah memvalidasi token ini, API akan mengembalikan respons JSON.
<? php if ($ _ POST) { require ('constant.php'); $ user_name = filter_var ($ _ POST ["name"], FILTER_SANITIZE_STRING); $ user_email = filter_var ($ _ POST ["email"], FILTER_SANITIZE_EMAIL); $ user_phone = filter_var ($ _ POST ["phone"], FILTER_SANITIZE_STRING); $ content = filter_var ($ _ POST ["konten"], FILTER_SANITIZE_STRING); if (empty ($ user_name)) { $ empty [] = "<b> Nama </ b>"; } if (empty ($ user_email)) { $ empty [] = "<b> Email </ b>"; } if (empty ($ user_phone)) { $ empty [] = "<b> Nomor Telepon </ b>"; } if (empty ($ content)) { $ empty [] = "<b> Komentar </ b>"; } if (! empty ($ empty)) { $ output = json_encode (array ('type' => 'error', 'text' => implode (",", $ kosong). 'Diperlukan!')); mati ($ output); } if (! filter_var ($ user_email, FILTER_VALIDATE_EMAIL)) {// validasi email $ output = json_encode (array ('type' => 'error', 'text' => '<b>'. $ user_email. '</ b> adalah Email yang tidak valid, mohon dikoreksi.')); mati ($ output); } // reCAPTCHA validasi if (isset ($ _ POST ['g-recaptcha-response']))) { require ('component / recaptcha / src / autoload.php'); $ recaptcha = new \ ReCaptcha \ ReCaptcha (SECRET_KEY, new \ ReCaptcha \ RequestMethod \ SocketPost ()); $ resp = $ recaptcha-> verify ($ _ POST ['g-recaptcha-response'], $ _SERVER ['REMOTE_ADDR']); if (! $ resp-> isSuccess ()) { $ output = json_encode (array ('type' => 'error', 'text' => '<b> Captcha </ b> Validasi Diperlukan!')); mati ($ output); } } $ toEmail = "member@testdomain.com"; $ mailHeaders = "Dari:". $ user_name. "<". $ user_email. "> \ r \ n"; if (mail ($ toEmail, "Contact Mail", $ konten, $ mailHeaders)) { $ output = json_encode (array ('type' => 'message', 'text' => 'Hai'. $ user_name. ', terima kasih atas komentarnya. Kami akan segera menghubungi Anda.')); mati ($ output); } lain { $ output = json_encode (array ('type' => 'error', 'text' => 'Tidak dapat mengirim email, silakan hubungi'.SENDER_EMAIL)); mati ($ output); } } ?>
Formulir Kontak dengan Google reCAPTCHA - Output
Screeenshot berikut menunjukkan widget reCAPTCHA Google yang diberikan dengan formulir kontak PHP.

Tutorial kode PHP ini diterbitkan pada tanggal 9 Januari 2018.
