2016-11-12 13 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

何か私はビデオから得たものがあります。私は初心者です。私は確かに訂正するために開いています。他のすべてが動作していればフォームを表示する必要がありますか? – Newsong80

+0

あなたはこれを試してみたようですhttp://stackoverflow.com/q/40400611/1415724密接に関連している。だから、私はフォームがどのように見えるか、あなたが手に入れようとしているキーが有効であるか分からない。 –

答えて

0

あなたが検証した後、処理されている、しかし、検証しているが、あなたは検証が成功したかどうかを判断するif文、...外

このコードは次のように変更することができます:

<?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

関連する問題