Importante: la versione 1.0 dell'API reCAPTCHA non è più supportata. Esegui l'upgrade alla versione 2.0. Scopri di più
La libreria PHP di reCAPTCHA offre un modo semplice per inserire un CAPTCHA su il tuo sito web PHP, in modo da impedire ai bot di utilizzarlo in modo illecito. La libreria aggrega API reCAPTCHA.
Per utilizzare reCAPTCHA con PHP, puoi scaricare reCAPTCHA PHP libreria di Google. Sarà sufficiente utilizzare un solo file (recaptchalib.php). Gli altri file sono file leggibili e informazioni legali: non influiscono sulla funzionalità.
Avvio rapido
Dopo aver effettuato la registrazione per le chiavi API, di seguito sono riportate le istruzioni di base per installare reCAPTCHA sul tuo sito. Un guida di riferimento per il plug-in PHP è disponibile di seguito.
Lato client (come visualizzare l'immagine CAPTCHA)
Se vuoi utilizzare la libreria PHP per visualizzare il widget reCAPTCHA, dovrai inserire questo snippet di codice all'interno di <form> in cui verrà creato il widget reCAPTCHA posizionato:
require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey);
Con il codice, il modulo potrebbe avere un aspetto simile al seguente:
<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>
Non dimenticare di impostare $publickey sostituendo your_public_key
con
la chiave pubblica dell'API.
Tieni presente che il valore dell'"azione" è "verify.php". Ora, verify.php è il file file di destinazione in cui vengono inviati i valori di questo modulo. Avrai quindi bisogno di un file verifica.php nella stessa posizione del codice HTML del client.
La funzione request_once dell'esempio precedente prevede che recaptchalib.php sia nello stesso
come file del modulo. Se si trova in un'altra directory, devi collegarla in modo appropriato.
Ad esempio, se il file recaptchalib.php si trova nella directory "captcha" che corrisponde
livello come il file del modulo, la funzione sarà simile a questa:
require_once('captcha/recaptchalib.php')
.
Lato server (come verificare se l'utente ha inserito la risposta giusta)
Posiziona il seguente codice nella parte superiore del file 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 } ?>
Nel codice riportato sopra:
recaptcha_check_answer
restituisce un oggetto che rappresenta se l'utente
ha completato correttamente la sfida.$resp->is_valid
è true, la verifica captcha è stata completata correttamente e devi continuare con l'elaborazione del modulo.$resp->is_valid
è false, l'utente non è riuscito a fornire il captcha corretto
e devi visualizzare di nuovo il modulo per consentire un altro tentativo. In questo caso
$resp->error
sarà un codice di errore che può essere fornito a recaptcha_get_html
.
Se passi il codice di errore, il controllo reCAPTCHA mostrerà un messaggio che spiega che l'utente
non è stato inserito correttamente e dovrebbe riprovare.Tieni presente che questo codice richiede la chiave privata, cosa che non deve essere confuso. con la chiave pubblica. che si trovano nella stessa pagina della chiave pubblica.
Inoltre, assicurati che il modulo sia impostato in modo da ottenere le variabili del modulo utilizzando $_POST anziché $_REQUEST e che il modulo stesso utilizzi il metodo POST.
È tutto. reCAPTCHA dovrebbe funzionare sul tuo sito.
Per approfondire
Guida di riferimento dei plug-in PHP
Di seguito è riportato un elenco completo di tutti i metodi del plug-in PHP di reCAPTCHA.
La funzione recaptcha_get_html
La funzione recaptcha_get_html
visualizza il codice HTML che presenta reCAPTCHA a
il
utente.
recaptcha_get_html | |
Parametro | |
$pubkey -- stringa. obbligatorio. | La chiave pubblica reCAPTCHA, dalla pagina di registrazione all'API. |
$error -- stringa. facoltativo (nullo è il valore predefinito) | Se questa stringa è impostata, l'area reCAPTCHA mostrerà il codice di errore fornite. Questo codice di errore proviene da ReCaptchaResponse->$error |
$use_ssl -- boolean. facoltativo (il valore predefinito è false) | Dovrebbe essere utilizzata l'API basata su SSL? Se mostri una pagina al utente tramite SSL, assicurati di impostarlo su true in modo che non venga visualizzata una finestra di dialogo di errore vengono visualizzati nel browser dell'utente. |
Valore restituito | Una stringa contenente HTML da inserire nella pagina web. |
La funzione recaptcha_check_answer
Dopo che l'utente ha compilato il modulo HTML, inclusa la risposta per il CAPTCHA,
quando inviano il modulo utilizzando
Funzione recaptcha_check_answer
. La risposta dell'utente sarà compilata in due campi:
recaptcha_challenge_field
e recaptcha_response_field
. La
La libreria reCAPTCHA invia una richiesta HTTP al server reCAPTCHA e verifica la proprietà
risposta.
recaptcha_check_answer | |
Parametro | |
$privkey -- stringa. obbligatorio. | La chiave privata reCAPTCHA, dalla pagina di registrazione API. |
$remoteip -- stringa. obbligatorio. | L'indirizzo IP dell'utente, nel formato 192.168.0.1 |
$challenge -- stringa. obbligatorio. |
Il valore del campo del modulo recaptcha_challenge_field |
$response -- stringa. obbligatorio | Il valore del campo del modulo recaptcha_response_field |
Valore restituito | Un'istanza della classe ReCaptchaResponse |
ReCaptchaResponse | |
Campo | |
$is_valid -- boolean | reCAPTCHA ritiene che la risposta fosse valida? |
$error -- stringa | Se la risposta non era valida, qual era il problema? Questo codice di errore può essere utilizzato in recaptcha_get_html |
Valore restituito | HTML o URL non elaborato per decodificare l'indirizzo email, a seconda dell'attività che svolgi chiamato. |
Mailhide
La libreria PHP di reCAPTCHA include le associazioni per l'API Mailhide. Questo L'API consente di aggregare un'email in un reCAPTCHA per impedire agli spammer di vederla: esame...@example.com.
La parte Mailhide della libreria PHP richiede il modulo mcrypt di PHP.
L'API Mailhide è composta da due funzioni recaptcha_mailhide_html
e
recaptcha_mailhide_url
. Le funzioni hanno gli stessi parametri. La versione _html
restituisce HTML
che possono essere inseriti direttamente
sulla tua pagina web. La parte del nome utente dell'email che viene passata
viene troncato e sostituito con un link che chiama Mailhide. La versione _url fornisce l'URL
decodificare l'email, rimanendo a te la responsabilità di inserire l'email in HTML.
recaptcha_mailhide_url / recaptcha_mailhide_html | |
Parametro | |
$pubkey -- stringa | La chiave pubblica Mailhide dalla pagina di registrazione |
$privkey -- stringa | La chiave privata Mailhide dalla pagina di registrazione |
$email -- stringa | L'indirizzo email che vuoi nascondere. |
Nell'esempio seguente viene illustrato come utilizzare 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>