2016-11-12 2 views
-1

Моя reCaptcha не проверяет. Это дало мне возможность, несмотря ни на что. Он отправляет электронную почту и перенаправляет страницу благодарности, но не проверяет reCaptcha. Что мне не хватает? Вот мой PHP-код. Я не показывал его, но у меня есть правильный код в заголовке и тегах формы (скопирован/вставлен из reCAPTCHA). Спасибо за любую помощь заранее.ReCaptcha не будет проверять

<?php 
if (isset($_POST['submit'])) { 
    $secret = 'MY SECRET KEY'; 
    $response = $_POST['g-recaptcha-response']; 
    $remoteip = $_SERVER['REMOTE_ADDR']; 

    $url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip"); 
    $result = json_decode($url, TRUE); 
    if ($result['success'] == 1){ 
    } 
    } 

if(isset($_POST['submit'])) { 
    $emailbody = 'Name: '.$_POST['name']."\n" 
    .'Phone: '.$_POST['phone']."\n" 
    .'Email: '.$_POST['email']."\n" 
    .'Message: '.$_POST['message'];  
    mail('[email protected]', 'More Information', $emailbody); 
    header('location: thankyou.php'); 


exit(); 
    } 

?> 
+0

вопрос: почему вы используете 2x 'f (isset ($ _ POST ['submit']))'? и где форма для этого? сообщение об ошибке использования также. лучше всего я могу предложить –

+0

Что бы я ни получил, то, что я получил от видео. Я новичок. Я открыт для исправлений. Мне нужно показать форму, если все остальное работает, но recaptcha? – Newsong80

+0

Кажется, вы пробовали этот http://stackoverflow.com/q/40400611/1415724 быть близким. Итак, я не знаю, как выглядит форма или если ключ, который вы пытаетесь получить, действителен. –

ответ

0

Вы проверки, однако, вы обрабатываете после проверки, но за пределами, если заявление, где вы определить, была ли проверка успешной ...

Этот код может быть изменен:

<?php 
if (isset($_POST['submit'])) { 
$secret = 'MY SECRET KEY'; 
$response = $_POST['g-recaptcha-response']; 
$remoteip = $_SERVER['REMOTE_ADDR']; 

$url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip"); 
$result = json_decode($url, TRUE); 
if ($result['success'] == 1){ 

$emailbody = 'Name: '.$_POST['name']."\n" 
.'Phone: '.$_POST['phone']."\n" 
.'Email: '.$_POST['email']."\n" 
.'Message: '.$_POST['message'];  
mail('[email protected]', 'More Information', $emailbody); 
header('location: thankyou.php'); 
exit(); 
} else { 
// captcha failed 
} 
} 

?> 
+0

Теперь он проверяет (я думаю), но не перенаправляет. – Newsong80

+0

где я вставил «// captcha failed», замените это на «echo» captcha failed »; если страница перекликается с ней, то проверка не удалась. –

+0

Теперь он обновляет страницу и показывает эхо «captcha failed» наверху страницы и не отображает форму вообще. – Newsong80

Смежные вопросы