Lưu ý quan trọng: Phiên bản 1.0 của API reCAPTCHA không còn được hỗ trợ, vui lòng nâng cấp lên phiên bản 2.0. Tìm hiểu thêm
Thư viện reCAPTCHA PHP cung cấp một cách đơn giản để đặt CAPTCHA trang web PHP của bạn, giúp bạn ngăn chặn các bot lạm dụng nó. Thư viện bao bọc reCAPTCHA API.
Để sử dụng reCAPTCHA với PHP, bạn có thể tải reCAPTCHA PHP xuống thư viện. Từ đó, bạn sẽ chỉ cần một tệp (recaptchalib.php). Các tệp khác là chẳng hạn như readme và nội dung pháp lý -- chúng không ảnh hưởng đến chức năng.
Bắt đầu nhanh
Sau khi bạn đăng ký khoá API, hãy tham khảo hướng dẫn cơ bản dưới đây để cài đặt reCAPTCHA trên trang web của bạn. Đầy Bạn có thể tìm thấy hướng dẫn tham khảo cho plugin PHP bên dưới.
Phía máy khách (Cách hiển thị hình ảnh CAPTCHA)
Nếu muốn sử dụng thư viện PHP để hiển thị tiện ích reCAPTCHA, bạn sẽ cần phải chèn đoạn mã này bên trong <form> là phần tử chứa tiện ích reCAPTCHA đã đặt:
require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey);
Khi dùng đoạn mã này, biểu mẫu sẽ có dạng như sau:
<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>
Đừng quên đặt $publickey bằng cách thay thế your_public_key
bằng
khoá công khai cho API của bạn.
Lưu ý rằng giá trị của "hành động" là "verify.php". Bây giờ, verify.php là tệp đích mà các giá trị của biểu mẫu này được gửi tới. Do đó, bạn sẽ cần một tệp xác minh.php ở cùng vị trí với html của ứng dụng khách.
Hàm required_once trong ví dụ trên dự kiến recaptchalib.php sẽ nằm trong cùng một trạng thái
làm tệp biểu mẫu. Nếu tệp nằm trong thư mục khác, bạn phải liên kết thư mục đó một cách thích hợp.
Ví dụ: nếu recaptchalib.php của bạn nằm trong thư mục có tên là "captcha" giống nhau
làm tệp biểu mẫu, hàm sẽ có dạng như sau:
require_once('captcha/recaptchalib.php')
.
Phía máy chủ (Cách kiểm tra xem người dùng có nhập câu trả lời đúng hay không)
Mã sau đây phải được đặt ở đầu tệp verify.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 } ?>
Trong mã trên:
recaptcha_check_answer
trả về một đối tượng đại diện cho việc người dùng
đã hoàn tất thành công thử thách.$resp->is_valid
là true, nghĩa là thử thách bằng hình ảnh xác thực đã được hoàn thành chính xác và bạn nên tiếp tục xử lý biểu mẫu.$resp->is_valid
là false thì người dùng không cung cấp hình ảnh xác thực chính xác
và bạn nên hiển thị lại biểu mẫu để cho phép họ thử lại một lần nữa. Trong trường hợp này
$resp->error
sẽ là một mã lỗi mà bạn có thể cung cấp cho recaptcha_get_html
.
Khi bạn chuyển mã lỗi, tuỳ chọn kiểm soát reCAPTCHA sẽ hiển thị một thông báo giải thích rằng người dùng
đã nhập văn bản không chính xác và nên thử lại.Lưu ý rằng mã này đang yêu cầu khoá riêng tư. Bạn không nên nhầm lẫn khóa này bằng khoá công khai. Bạn nhận được mã này từ cùng một trang với khoá công khai.
Ngoài ra, hãy đảm bảo biểu mẫu của bạn được thiết lập để nhận các biến biểu mẫu bằng $_POST, thay vì $_REQUEST và bản thân biểu mẫu đang sử dụng phương thức POST.
Vậy là xong! reCAPTCHA lúc này sẽ hoạt động trên trang web của bạn.
Tài liệu đọc thêm
Hướng dẫn tham khảo về trình bổ trợ PHP
Dưới đây là danh sách đầy đủ tất cả các phương pháp của Trình bổ trợ reCAPTCHA cho reCAPTCHA.
Hàm recaptcha_get_html
Hàm recaptcha_get_html
hiển thị HTML trình bày reCAPTCHA cho
thời gian
người dùng.
recaptcha_get_html | |
Thông số | |
$pubkey -- chuỗi. là bắt buộc. | Khoá công khai reCAPTCHA của bạn, từ Trang đăng ký API |
$error -- chuỗi. không bắt buộc (giá trị mặc định là rỗng) | Nếu bạn đặt chuỗi này, khu vực reCAPTCHA sẽ hiển thị mã lỗi đã cho. Mã lỗi này bắt nguồn từ ReCaptchaResponse->$error |
$use_ssl -- boolean. không bắt buộc (sai là giá trị mặc định) | Có nên sử dụng API dựa trên SSL không? Nếu bạn đang hiển thị một trang cho người dùng qua SSL, hãy nhớ đặt giá trị này là true để hộp thoại lỗi không xuất hiện xuất hiện trong trình duyệt của người dùng. |
Giá trị trả về | Một chuỗi chứa HTML để đặt lên trang web. |
Hàm reCAPTCHA_check_answer
Sau khi người dùng điền vào biểu mẫu HTML, bao gồm cả câu trả lời của họ cho CAPTCHA,
muốn kiểm tra câu trả lời của họ khi gửi biểu mẫu bằng cách sử dụng
Hàm recaptcha_check_answer
. Câu trả lời của người dùng sẽ nằm trong 2 trường trong biểu mẫu,
recaptcha_challenge_field
và recaptcha_response_field
. Chiến lược phát hành đĩa đơn
Thư viện reCAPTCHA sẽ gửi một yêu cầu HTTP đến máy chủ reCAPTCHA và xác minh thông tin
.
recaptcha_check_answer | |
Thông số | |
$privkey -- chuỗi. là bắt buộc. | Khoá riêng tư reCAPTCHA của bạn, từ Trang đăng ký API. |
$remoteip -- chuỗi. là bắt buộc. | Địa chỉ IP của người dùng, ở định dạng 192.168.0.1 |
$Challenge -- chuỗi. là bắt buộc. |
Giá trị của trường biểu mẫu recaptcha_CHALLENGE_field |
$response -- chuỗi. bắt buộc | Giá trị của trường biểu mẫu recaptcha_response_field |
Giá trị trả về | Một bản sao của lớp ReCaptchaResponse |
ReCaptchaResponse | |
Trường | |
$is_valid -- boolean | reCAPTCHA cho rằng câu trả lời là hợp lệ không? |
$error -- chuỗi | Nếu câu trả lời không hợp lệ thì vấn đề là gì? Mã lỗi này có thể là được sử dụng trong recaptcha_get_html |
Giá trị trả về | HTML hoặc url thô để giải mã địa chỉ email, tuỳ thuộc vào chức năng của bạn có tên. |
Ẩn thư
Thư viện PHP reCAPTCHA bao gồm các liên kết cho API Mailhide. Chiến dịch này API cho phép bạn gói email vào reCAPTCHA để ngăn người gửi thư rác nhìn thấy email đó: khảo sát...@example.com.
Phần Mailhide của Thư viện PHP yêu cầu mô-đun PHP mcrypt.
API Mailhide bao gồm hai hàm recaptcha_mailhide_html
và
recaptcha_mailhide_url
Các hàm có cùng tham số. Phiên bản _html
trả về HTML
có thể đặt trực tiếp trên trang web của bạn. Phần tên người dùng của email được chuyển vào
sẽ bị cắt bớt và thay thế bằng một đường liên kết có chức năng gọi Mailẩn. Phiên bản _url cung cấp cho bạn url
để giải mã email và để bạn đặt email đó trong HTML.
recaptcha_mailhide_url / recaptcha_mailhide_html | |
Thông số | |
$pubkey -- chuỗi | Khóa công khai Mailhide từ trang đăng ký |
$privkey -- chuỗi | Khóa riêng tư Mailẩn từ trang đăng ký |
$email -- chuỗi | Địa chỉ email bạn muốn ẩn. |
Ví dụ sau đây minh hoạ cách sử dụng 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>