Ważne: interfejs API reCAPTCHA w wersji 1.0 nie jest już obsługiwany, uaktualnij go do wersji 2.0. Więcej informacji
Biblioteka PHP reCAPTCHA pozwala w prosty sposób umieścić CAPTCHA w w Twojej witrynie w języku PHP, aby zapobiec nadużywaniu jej przez boty. Biblioteka obejmuje Interfejs API reCAPTCHA.
Aby korzystać z reCAPTCHA w PHP, pobierz plik reCAPTCHA PHP Biblioteka. Potrzebny będzie tylko jeden plik (recaptchalib.php). Pozostałe pliki są Przykłady, pliki Readme i informacje prawne – nie mają wpływu na funkcjonalność.
Szybki start
Gdy już zarejestrujesz klucze interfejsu API, poniżej znajdziesz podstawowe instrukcje instalowania reCAPTCHA w witrynie. Pełny przewodnik po wtyczce PHP znajdziesz poniżej.
Po stronie klienta (jak wyświetlić obraz CAPTCHA)
Jeśli chcesz wyświetlić widżet reCAPTCHA za pomocą biblioteki PHP, musisz wstawić ten fragment kodu w <form>. element, w którym będzie widżet reCAPTCHA umieszczone:
require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey);
Z kodem Twój formularz może wyglądać mniej więcej tak:
<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>
Nie zapomnij ustawić parametru $publickey, zastępując your_public_key
ciągiem
klucz publiczny interfejsu API.
Zauważ, że wartość działania to „verify.php”. A teraz sprawdź poprawność pliku.php. plik docelowy, do którego przesyłane są wartości tego formularza. Potrzebujesz pliku Verify.php znajduje się w tej samej lokalizacji co plik html klienta.
Funkcja required_once w powyższym przykładzie wymaga, aby skrypt recaptchalib.php znajdował się w tej samej
jako plik formularza. Jeśli znajduje się w innym katalogu, musisz połączyć go w odpowiedni sposób.
Na przykład jeśli plik recaptchalib.php znajduje się w katalogu o nazwie „captcha” na tym samym
na poziomie pliku formularza, funkcja będzie wyglądać tak:
require_once('captcha/recaptchalib.php')
Po stronie serwera (jak sprawdzić, czy użytkownik wpisał poprawną odpowiedź)
Na początku pliku Verify.php należy umieścić następujący kod:
<?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 } ?>
W powyższym kodzie:
recaptcha_check_answer
zwraca obiekt wskazujący, czy użytkownik
udało Ci się ukończyć wyzwanie.$resp->is_valid
ma wartość prawda, test captcha został ukończony prawidłowo i należy kontynuować przetwarzanie formularza.$resp->is_valid
ma wartość Fałsz, użytkownik nie podał poprawnego obrazu captcha.
. Możesz spróbować ponownie wyświetlić formularz. W tym przypadku
$resp->error
będzie kodem błędu, który można przekazać do recaptcha_get_html
.
Po przekazaniu kodu błędu kontrolka reCAPTCHA wyświetli komunikat wyjaśniający, że użytkownik
błędnie wpisali tekst. Spróbuj ponownie.Zwróć uwagę, że ten kod wymaga podania klucza prywatnego, którego nie należy mylić. za pomocą klucza publicznego. Otrzymasz go z tej samej strony co klucz publiczny.
Upewnij się też, że formularz jest ustawiony tak, aby uzyskiwać zmienne formularza za pomocą metody $_POST, a nie $_REQUEST, a sam formularz korzysta z metody POST.
To wszystko. reCAPTCHA powinien już działać w Twojej witrynie.
Dalsza lektura
Przewodnik po wtyczkach PHP
Poniżej znajduje się pełna lista wszystkich metod używanych przez wtyczkę reCAPTCHA PHP.
Funkcja recaptcha_get_html
Funkcja recaptcha_get_html
wyświetla kod HTML, który przedstawia reCAPTCHA
użytkownika.
recaptcha_get_html | |
Parametr | |
$pubkey -- ciąg. | Twój klucz publiczny reCAPTCHA ze strony rejestracji interfejsu API. |
$error – ciąg. opcjonalnie (wartość domyślna to wartość null) | Jeśli ten ciąg jest ustawiony, w obszarze reCAPTCHA będzie wyświetlany kod błędu danej wartości. Ten kod błędu pochodzi z ReCaptchaResponse->$error |
$use_ssl -- boolean. opcjonalnie (wartość domyślna: fałsz) | Czy należy używać interfejsu API opartego na SSL? Jeśli wyświetlasz stronę w przez SSL, pamiętaj, aby wybrać dla tego ustawienia wartość Prawda, aby okno błędu nie było pojawi się w przeglądarce użytkownika. |
Zwracana wartość | Ciąg tekstowy zawierający kod HTML do umieszczenia na stronie internetowej. |
Funkcja recaptcha_check_answer
Gdy użytkownik wypełni formularz HTML (wraz z odpowiedzią na obraz CAPTCHA)
chcą sprawdzić swoje odpowiedzi po przesłaniu formularza za pomocą
recaptcha_check_answer
. Odpowiedź użytkownika będzie
podana w dwóch polach,
recaptcha_challenge_field
i recaptcha_response_field
.
Biblioteka reCAPTCHA wyśle żądanie HTTP do serwera reCAPTCHA i zweryfikuje
.
recaptcha_check_answer | |
Parametr | |
$privkey -- ciąg. | Twój klucz prywatny reCAPTCHA ze strony rejestracji interfejsu API. |
$remoteip -- ciąg. | Adres IP użytkownika w formacie 192.168.0.1 |
$challenge -- string. |
Wartość w polu formularza: recaptcha_challenge_field |
$response – ciąg. wymagane | Wartość w polu recaptcha_response_field |
Zwracana wartość | Instancja klasy ReCaptchaResponse |
ReCaptchaResponse | |
Pole | |
$is_valid -- boolean | Czy reCAPTCHA uznał, że odpowiedź jest prawidłowa? |
$error – ciąg | Jeśli odpowiedź była nieprawidłowa, co było przyczyną problemu? Ten kod błędu może być używane w recaptcha_get_html |
Zwracana wartość | Kod HTML lub nieprzetworzony URL do zdekodowania adresu e-mail – w zależności od funkcji . |
Kod pocztowy
Biblioteka PHP reCAPTCHA zawiera powiązania dla interfejsu API Mailhide. Ten Interfejs API umożliwia zapakowanie e-maila do reCAPTCHA, aby spamerzy nie mogli go zobaczyć: egzamin...@example.com.
Część Mailhide w bibliotece PHP wymaga modułu mcrypt PHP.
Interfejs Mailhide API składa się z dwóch funkcji recaptcha_mailhide_html
oraz
recaptcha_mailhide_url
Funkcje mają te same parametry. Wersja _html
zwraca kod HTML
które można umieścić bezpośrednio na stronie. Przekazywana część e-maila z nazwą użytkownika
jest obcinany i zastępowany linkiem wywołującym Mailhide. Wersja _url udostępnia URL
do zdekodowania e-maila, pozostawiając wyłącznie możliwość umieszczenia go w kodzie HTML.
recaptcha_mailhide_url / recaptcha_mailhide_html | |
Parametr | |
$pubkey -- ciąg | klucz publiczny Mailhide na stronie rejestracji; |
$privkey -- ciąg | klucz prywatny Mailhide na stronie rejestracji; |
$email – ciąg | Adres e-mail, który chcesz ukryć. |
Poniższy przykład pokazuje, jak używać 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>