Last active
June 6, 2016 21:43
-
-
Save kodie/26ec209885e19161ba67 to your computer and use it in GitHub Desktop.
Use this if you want your form to be submitted to a third party but also want to verify reCAPTCHA before it gets sent. You need to make a hidden input called 'sendURL' and in the value put the URL that you would like the form to be submitted to.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
ob_start(); | |
session_start(); | |
require_once('recaptchalib.php'); | |
$key_public = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; | |
$key_private = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; | |
$captchaFailed = false; | |
$response = null; | |
$reCaptcha = new ReCaptcha($key_private); | |
if (!function_exists('curl_version')) { | |
die('Curl package missing.'); | |
} | |
if ($_SERVER['REQUEST_METHOD'] == 'POST') { | |
if (isset($_POST['g-recaptcha-response'])) { | |
$response = $reCaptcha->verifyResponse( | |
$_SERVER['REMOTE_ADDR'], | |
$_POST['g-recaptcha-response'] | |
); | |
if ($response !== null) { | |
if ($response->success) { | |
$fields = $_POST; | |
$sendURL = $fields['sendURL']; | |
unset($fields['sendURL']); | |
unset($fields['g-recaptcha-response']); | |
$fields_string = http_build_query($fields); | |
$ch = curl_init(); | |
curl_setopt($ch, CURLOPT_URL, $sendURL); | |
curl_setopt($ch, CURLOPT_POST, 1); | |
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); | |
$result = curl_exec($ch); | |
curl_close($ch); | |
} else { | |
$captchaFailed = true; | |
} | |
} else { | |
$captchaFailed = true; | |
} | |
} else { | |
$captchaFailed = true; | |
} | |
} | |
if ($captchaFailed && count(get_included_files()) < 3) { | |
echo 'reCAPTCHA failed! Please go back and try again.'; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment