diff --git a/conf/config.inc.php b/conf/config.inc.php index 45abacfc..c0b0e12d 100644 --- a/conf/config.inc.php +++ b/conf/config.inc.php @@ -265,6 +265,9 @@ $recaptcha_theme = "light"; $recaptcha_type = "image"; $recaptcha_size = "normal"; +# reCAPTCHA request method, null for default, Fully Qualified Class Name to override +# Useful when allow_url_fopen=0 ex. $recaptcha_request_method = '\ReCaptcha\RequestMethod\Socket'; +$recaptcha_request_method = null; ## Default action # change diff --git a/pages/change.php b/pages/change.php index 882139b0..e49145e3 100644 --- a/pages/change.php +++ b/pages/change.php @@ -65,7 +65,7 @@ #============================================================================== if ( $result === "" ) { if ( $use_recaptcha) { - $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey); + $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey, is_null($recaptcha_request_method) ? null : new $recaptcha_request_method()); $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']); if (!$resp->isSuccess()) { $result = "badcaptcha"; diff --git a/pages/changesshkey.php b/pages/changesshkey.php index 11bb1bd3..5a2b3dea 100644 --- a/pages/changesshkey.php +++ b/pages/changesshkey.php @@ -57,7 +57,7 @@ #============================================================================== if ( $result === "" ) { if ( $use_recaptcha) { - $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey); + $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey, is_null($recaptcha_request_method) ? null : new $recaptcha_request_method()); $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']); if (!$resp->isSuccess()) { $result = "badcaptcha"; diff --git a/pages/resetbyquestions.php b/pages/resetbyquestions.php index 87c8299b..a256a71f 100644 --- a/pages/resetbyquestions.php +++ b/pages/resetbyquestions.php @@ -66,7 +66,7 @@ #============================================================================== if ( $result === "" ) { if ( $use_recaptcha ) { - $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey); + $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey, is_null($recaptcha_request_method) ? null : new $recaptcha_request_method()); $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']); if (!$resp->isSuccess()) { $result = "badcaptcha"; diff --git a/pages/resetbytoken.php b/pages/resetbytoken.php index 3ee700ec..59171f17 100644 --- a/pages/resetbytoken.php +++ b/pages/resetbytoken.php @@ -102,7 +102,7 @@ #============================================================================== if ( $result === "" ) { if ( $use_recaptcha ) { - $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey); + $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey, is_null($recaptcha_request_method) ? null : new $recaptcha_request_method()); $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']); if (!$resp->isSuccess()) { $result = "badcaptcha"; diff --git a/pages/sendsms.php b/pages/sendsms.php index e6bb1809..f323c30c 100644 --- a/pages/sendsms.php +++ b/pages/sendsms.php @@ -116,7 +116,7 @@ #============================================================================== if ( $result === "" ) { if ( $use_recaptcha ) { - $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey); + $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey, is_null($recaptcha_request_method) ? null : new $recaptcha_request_method()); $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']); if (!$resp->isSuccess()) { $result = "badcaptcha"; diff --git a/pages/sendtoken.php b/pages/sendtoken.php index 8cfcb63d..f7292b29 100644 --- a/pages/sendtoken.php +++ b/pages/sendtoken.php @@ -55,7 +55,7 @@ #============================================================================== if ( $result === "" ) { if ( $use_recaptcha ) { - $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey); + $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey, is_null($recaptcha_request_method) ? null : new $recaptcha_request_method()); $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']); if (!$resp->isSuccess()) { $result = "badcaptcha"; diff --git a/pages/setquestions.php b/pages/setquestions.php index 2fa8a830..11fdfddb 100644 --- a/pages/setquestions.php +++ b/pages/setquestions.php @@ -60,7 +60,7 @@ #============================================================================== if ( $result === "" ) { if ( $use_recaptcha) { - $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey); + $recaptcha = new \ReCaptcha\ReCaptcha($recaptcha_privatekey, is_null($recaptcha_request_method) ? null : new $recaptcha_request_method()); $resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']); if (!$resp->isSuccess()) { $result = "badcaptcha"; diff --git a/tests/ReCaptchaTest.php b/tests/ReCaptchaTest.php new file mode 100644 index 00000000..0f9cfdca --- /dev/null +++ b/tests/ReCaptchaTest.php @@ -0,0 +1,26 @@ +assertInstanceOf('\ReCaptcha\RequestMethod', new $requestMethod); + } + + public function requestMethodsProvider() + { + return [ + ['\ReCaptcha\RequestMethod\Post'], // default reCAPTCHA request method + ['\ReCaptcha\RequestMethod\SocketPost'], + ['\ReCaptcha\RequestMethod\CurlPost'], + ]; + } +} +