Penting: reCAPTCHA API versi 1.0 tidak lagi didukung, upgrade ke Versi 2.0. Pelajari lebih lanjut
Library reCAPTCHA PHP menyediakan cara mudah untuk menempatkan CAPTCHA di situs PHP Anda, yang membantu Anda menghentikan bot agar tidak menyalahgunakannya. Library ini menggabungkan reCAPTCHA API.
Untuk menggunakan reCAPTCHA dengan PHP, Anda dapat mendownload library PHP reCAPTCHA. Anda hanya memerlukan satu file dari sana (recaptchalib.php). File lainnya adalah contoh, readme, dan materi hukum -- file tersebut tidak memengaruhi fungsi.
Mulai Cepat
Setelah mendaftar kunci API, berikut adalah petunjuk dasar untuk menginstal reCAPTCHA di situs Anda. Panduan referensi lengkap untuk plugin PHP dapat ditemukan di bawah ini.
Sisi Klien (Cara memunculkan gambar CAPTCHA)
Jika ingin menggunakan library PHP untuk menampilkan widget reCAPTCHA, Anda harus menyisipkan cuplikan kode ini ke dalam elemen <form> tempat widget reCAPTCHA akan ditempatkan:
require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey);
Dengan kode tersebut, formulir Anda akan terlihat seperti ini:
<html> <body> <!-- the body tag is required or the CAPTCHA may not show on some browsers --> <!-- your HTML content --> <form method="post" action="verify.php"> <?php require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey); ?> <input type="submit" /> </form> <!-- more of your HTML content --> </body> </html>
Jangan lupa menyetel $publickey dengan mengganti your_public_key
dengan kunci publik API Anda.
Perhatikan bahwa nilai atribut "action" adalah "verify.php". Sekarang, {i>verify.php<i} adalah file tujuan tempat pengiriman nilai formulir ini. Jadi Anda memerlukan file {i>verify.php<i} di lokasi yang sama dengan {i>html<i} klien.
Fungsi required_once pada contoh di atas mengharapkan recaptchalib.php berada di direktori yang sama
dengan file formulir Anda. Jika berada di direktori lain, Anda harus menautkannya dengan benar.
Misalnya, jika recaptchalib.php Anda berada di direktori bernama "captcha" yang berada pada level yang sama dengan file formulir, fungsinya akan terlihat seperti ini: require_once('captcha/recaptchalib.php')
.
Sisi Server (Cara menguji apakah pengguna memasukkan jawaban yang benar)
Kode berikut harus ditempatkan di bagian atas fileverify.php:
<?php require_once('recaptchalib.php'); $privatekey = "your_private_key"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { // What happens when the CAPTCHA was entered incorrectly die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")"); } else { // Your code here to handle a successful verification } ?>
Dalam kode di atas:
recaptcha_check_answer
menampilkan objek yang menunjukkan apakah pengguna berhasil menyelesaikan tantangan.$resp->is_valid
bernilai benar, maka tantangan reCAPTCHA telah diselesaikan dengan benar dan Anda harus melanjutkan pemrosesan formulir.$resp->is_valid
bernilai salah (false), pengguna gagal memberikan teks reCAPTCHA yang benar. Anda harus menampilkan kembali formulir agar pengguna dapat mencoba lagi. Dalam hal ini, $resp->error
akan menjadi kode error yang dapat diberikan ke recaptcha_get_html
.
Jika kode error diteruskan, kontrol reCAPTCHA akan menampilkan pesan yang menjelaskan bahwa pengguna salah memasukkan teks dan harus mencoba lagi.Perhatikan bahwa kode ini meminta kunci private, yang tidak boleh sama dengan kunci publik. Anda mendapatkannya dari halaman yang sama dengan kunci publik.
Pastikan juga formulir Anda disetel untuk mendapatkan variabel formulir menggunakan $_POST, bukan $_REQUEST, dan formulir tersebut menggunakan metode POST.
Selesai! reCAPTCHA seharusnya kini berfungsi di situs Anda.
Bacaan Lebih Lanjut
Panduan Referensi Plugin PHP
Berikut adalah daftar lengkap semua metode Plugin PHP reCAPTCHA.
Fungsi recaptcha_get_html
Fungsi recaptcha_get_html
menampilkan HTML yang menyajikan reCAPTCHA kepada pengguna.
recaptcha_get_html | |
Parameter | |
$pubkey -- string. wajib diisi. | Kunci publik reCAPTCHA Anda, dari Halaman Pendaftaran API |
$error -- string. opsional (null adalah default) | Jika string ini disetel, area reCAPTCHA akan menampilkan kode error yang diberikan. Kode error ini berasal dari ReCaptchaResponse->$error |
$use_ssl -- boolean. opsional (salah adalah default) | Apakah API berbasis SSL harus digunakan? Jika Anda menampilkan halaman kepada pengguna melalui SSL, pastikan untuk menyetelnya ke true sehingga dialog error tidak muncul di browser pengguna. |
Nilai yang ditampilkan | String yang berisi HTML untuk ditempatkan di halaman web. |
Fungsi recaptcha_check_answer
Setelah pengguna mengisi formulir HTML, termasuk jawaban CAPTCHA, kami ingin memeriksa jawaban mereka ketika mereka mengirimkan formulir menggunakan fungsi recaptcha_check_answer
. Jawaban pengguna akan memiliki dua kolom formulir, recaptcha_challenge_field
dan recaptcha_response_field
. Library reCAPTCHA akan membuat permintaan HTTP ke server reCAPTCHA dan memverifikasi jawaban pengguna.
recaptcha_check_answer | |
Parameter | |
$privkey -- string. wajib diisi. | Kunci pribadi reCAPTCHA Anda, dari Halaman Pendaftaran API. |
$remoteip -- string. wajib diisi. | Alamat IP pengguna, dalam format 192.168.0.1 |
$challenge -- string. required. |
Nilai kolom formulir recaptcha_challenge_field |
$response -- string. required | Nilai kolom recaptcha_response_field |
Nilai yang ditampilkan | Instance class ReCaptchaResponse |
ReCaptchaResponse | |
Kolom | |
$is_valid -- boolean | Apakah reCAPTCHA yakin bahwa jawabannya valid? |
$error -- string | Jika jawaban tidak valid apa masalahnya? Kode error ini dapat digunakan dalam recaptcha_get_html |
Nilai yang ditampilkan | HTML atau URL mentah untuk mendekode alamat email, bergantung pada fungsi yang Anda panggil. |
Mailhide
Library PHP reCAPTCHA menyertakan binding untuk Mailhide API. Dengan API ini, Anda dapat menggabungkan email dalam reCAPTCHA untuk mencegah spammer melihatnya: ujian...@example.com.
Bagian Mailhide dari Library PHP memerlukan modul mcrypt PHP.
Mailhide API terdiri dari dua fungsi recaptcha_mailhide_html
dan recaptcha_mailhide_url
. Fungsi memiliki parameter yang sama. Versi _html menampilkan HTML yang dapat ditempatkan langsung di halaman web Anda. Bagian nama pengguna email yang diteruskan akan terpotong dan diganti dengan link yang memanggil Mailhide. Versi _url memberi Anda URL untuk mendekode email dan menyerahkannya kepada Anda untuk menempatkan email dalam HTML.
recaptcha_mailhide_url / recaptcha_mailhide_html | |
Parameter | |
$pubkey -- string | Kunci publik Mailhide dari halaman pendaftaran |
$privkey -- string | Kunci pribadi Mailhide dari halaman pendaftaran |
$email -- string | Alamat email yang ingin Anda sembunyikan. |
Contoh berikut menunjukkan cara menggunakan Mailhide:
<html><body> <? require_once ("recaptchalib.php"); // get a key at http://www.google.com/recaptcha/mailhide/apikey $mailhide_pubkey = ''; $mailhide_privkey = ''; ?> The Mailhide encoding of example@example.com is <? echo recaptcha_mailhide_html ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?>. <br> The url for the email is: <? echo recaptcha_mailhide_url ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?> <br> </body></html>