Php space does not support socket but curl recaptcha usage. For more information, see.
Php space does not support socket but curl recaptcha usage. For more information, see.
1. Modify the two methods in recaptchalib. php
The Code is as follows:
Function _ recaptcha_http_post ($ host, $ path, $ data, $ port = 80 ){
$ Req = _ recaptcha_qsencode ($ data );
$ Response = '';
$ Url = $ host. $ path;
$ Post_data = $ req;
$ Ch = curl_init ();
Curl_setopt ($ ch, CURLOPT_URL, $ url );
Curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1 );
// We are posting data!
Curl_setopt ($ ch, CURLOPT_POST, 1 );
// Add the post variable
Curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ post_data );
$ Output = curl_exec ($ ch );
Curl_close ($ ch );
// Echo $ output;
$ Response = $ output;
Return $ response;
}
Function recaptcha_check_answer ($ privkey, $ remoteip, $ challenge, $ response, $ extra_params = array ())
{
If ($ privkey = null | $ privkey = ''){
Die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create ");
}
If ($ remoteip = null | $ remoteip = ''){
Die ("For security reasons, you must pass the remote ip to reCAPTCHA ");
}
// Discard spam submissions
If ($ challenge = null | strlen ($ challenge) = 0 | $ response = null | strlen ($ response) = 0 ){
$ Recaptcha_response = new ReCaptchaResponse ();
$ Recaptcha_response-> is_valid = false;
$ Recaptcha_response-> error = 'encrect-captcha-sol ';
Return $ recaptcha_response;
}
$ Response = _ recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify ",
Array (
'Privatekey' => $ privkey,
'Remoteip' => $ remoteip,
'Challenge' => $ challenge,
'Response' => $ response
) + $ Extra_params
);
$ Answers = explode ("\ n", $ response [1]);
$ Recaptcha_response = new ReCaptchaResponse ();
$ Pos = strpos ($ response, 'true ');
If ($ pos = false ){
$ Recaptcha_response-> is_valid = false;
$ Recaptcha_response-> error = $ response;
} Else {
$ Recaptcha_response-> is_valid = true;
}
Return $ recaptcha_response;
}
2. demo. php
The Code is as follows: