Penting: reCAPTCHA API versi 1.0 tidak lagi didukung. Harap upgrade ke Versi 2.0. Pelajari lebih lanjut
Library PHP reCAPTCHA menyediakan cara mudah untuk menempatkan CAPTCHA di situs web PHP Anda, membantu Anda menghentikan {i>bot <i}untuk menyalahgunakannya. Library ini menggabungkan reCAPTCHA API.
Untuk menggunakan reCAPTCHA dengan PHP, Anda dapat mendownload reCAPTCHA PHP library. Anda hanya memerlukan satu file dari sana (recaptchalib.php). File lainnya contoh, readme, dan hal-hal hukum -- mereka tidak mempengaruhi fungsi.
Mulai Cepat
Setelah mendaftarkan kunci API, berikut adalah petunjuk dasar untuk menginstal reCAPTCHA di situs Anda. Lengkap panduan referensi 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 di dalam <form> tempat widget reCAPTCHA akan berada 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 "action" adalah "verify.php". Sekarang, Verify.php adalah file tujuan tempat nilai formulir ini dikirim. Anda akan membutuhkan file Verify.php di lokasi yang sama dengan html klien.
Fungsi requirements_once dalam contoh di atas mengharapkan recaptchalib.php berada di bagian yang sama
sebagai file formulir. Jika file berada di direktori lain, Anda harus menautkannya dengan benar.
Misalnya jika recaptchalib.php Anda berada di direktori yang disebut "captcha" yang berada di
sama dengan file formulir Anda, 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 merepresentasikan apakah pengguna
berhasil menyelesaikan tantangan.$resp->is_valid
benar, maka tantangan captcha telah diselesaikan dengan benar dan Anda harus melanjutkan pemrosesan formulir.$resp->is_valid
salah, pengguna gagal memberikan captcha yang benar
teks dan Anda harus menampilkan ulang formulir
agar mereka dapat mengulang lagi. Dalam hal ini,
$resp->error
akan menjadi kode error yang dapat diberikan kepada recaptcha_get_html
.
Meneruskan kode error akan membuat kontrol reCAPTCHA menampilkan pesan yang menjelaskan bahwa pengguna
salah memasukkan teks dan harus mencoba lagi.Perhatikan bahwa kode ini meminta kunci private, yang tidak boleh dibingungkan dengan kunci publik. Anda mendapatkannya dari halaman yang sama dengan kunci publik.
Pastikan juga formulir Anda diatur untuk mendapatkan variabel formulir menggunakan $_POST, bukan $_REQUEST, dan formulir itu sendiri menggunakan metode POST.
Selesai. reCAPTCHA kini seharusnya berfungsi di situs Anda.
Bacaan Lebih Lanjut
Panduan Referensi Plugin PHP
Di bawah ini adalah daftar lengkap semua metode Plugin PHP reCAPTCHA.
Fungsi recaptcha_get_html
Fungsi recaptcha_get_html
menampilkan HTML yang menyajikan reCAPTCHA ke
tindakan
.
recaptcha_get_html | |
Parameter | |
string $pubkey --. tidak diperlukan. | Kunci publik reCAPTCHA Anda, dari Halaman Pendaftaran API |
$error -- string. opsional (null adalah default) | Jika string ini ditetapkan, area reCAPTCHA akan menampilkan kode error diberikan. Kode error ini berasal dari ReCaptchaResponse->$error |
$use_ssl -- boolean. opsional (salah adalah default) | Haruskah API berbasis SSL digunakan? Jika Anda menampilkan halaman ke melalui SSL, pastikan untuk menyetelnya ke {i>true<i} agar dialog kesalahan tidak muncul di browser pengguna. |
Nilai yang ditampilkan | String yang berisi HTML untuk dimasukkan ke halaman web. |
Fungsi recaptcha_check_answer
Setelah pengguna mengisi formulir HTML, termasuk jawaban mereka untuk CAPTCHA, kita
ingin memeriksa jawaban mereka saat mereka mengirimkan formulir menggunakan
Fungsi recaptcha_check_answer
. Jawaban pengguna ada dalam
dua isian formulir,
recaptcha_challenge_field
dan recaptcha_response_field
. Tujuan
Library reCAPTCHA akan mengirimkan permintaan HTTP ke server reCAPTCHA dan memverifikasi
ke suatu jawaban tertentu.
recaptcha_check_answer | |
Parameter | |
$privkey -- string. tidak diperlukan. | Kunci pribadi reCAPTCHA Anda, dari Halaman Pendaftaran API. |
$remoteip -- string. tidak diperlukan. | Alamat IP pengguna, dalam format 192.168.0.1 |
$challenge -- string. tidak diperlukan. |
Nilai kolom formulir recaptcha_challenge_field |
$response -- string. wajib diisi | Nilai kolom formulir recaptcha_response_field |
Nilai yang ditampilkan | Instance class ReCaptchaResponse |
ReCaptchaResponse | |
Kolom | |
$is_valid -- boolean | Apakah reCAPTCHA yakin bahwa jawabannya valid? |
$error -- string | Jika jawabannya tidak valid, apa masalahnya? Kode {i>error <i}ini dapat berupa digunakan dalam recaptcha_get_html |
Nilai yang ditampilkan | HTML atau url mentah untuk mendekode alamat email, tergantung pada fungsi Anda dipanggil. |
Sembunyikan Email
Library PHP reCAPTCHA menyertakan binding untuk Mailhide API. Ini API memungkinkan Anda membungkus email di 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 langsung ditempatkan di halaman web Anda. Bagian nama pengguna dari email yang diteruskan
terpotong dan digantikan dengan tautan yang memanggil Mailhide. Versi _url menunjukkan url
untuk mendekode email itu dan menyerahkannya
pada Anda untuk menempatkan email itu di 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>