2013-12-08 135 views
1

我試圖讓reCaptcha爲我的表單工作。表單本身完美地運行,沒有reCaptcha。以下是我的.html和.php文件中的相關代碼。PHP reCaptcha沒有在網站上顯示

問題是reCAPTCHA小部件根本沒有顯示在頁面上。我可以讓提交按鈕工作,但當然由於缺少小部件,它總是失敗。

sign_up.html

<div id="form"> 
    <script type="text/javascript"> 
     var RecaptchaOptions = { 
     theme : 'white' 
    }; 
    </script> 
    <form class="pure-form" action="myprocessingscript.php" method="post">   
     <fieldset class="pure-group"> 
      <input name="field1" type="text" class="pure-input-1-2" placeholder="Name"> 
      <input name="field2" type="text" class="pure-input-1-2" placeholder="Username"> 
      <input name="field3" type="email" class="pure-input-1-2" placeholder="Email"> 
     </fieldset> 
     <?php 
      require_once('recaptchalib.php'); 
      $publickey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(censored)"; 
      echo recaptcha_get_html($publickey); 
     ?> 
     <button name="submit" type="submit" class="pure-button pure-input-1-2 pure-button-primary">Skicka</button>  
    </form> 
</div> 

myprocessingscript.php

<?php 
    require_once('recaptchalib.php'); 
    $privatekey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx(censored)"; 
    $resp = recaptcha_check_answer ($privatekey, 
           $_SERVER["REMOTE_ADDR"], 
           $_POST["recaptcha_challenge_field"], 
           $_POST["recaptcha_response_field"]); 

    if (!$resp->is_valid) { 
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . 
     "(reCAPTCHA said: " . $resp->error . ")"); 
    } else { 
    if(isset($_POST['field1']) && isset($_POST['field2']) && isset($_POST['field3'])) { 
    $data = $_POST['field1'] . '-' . $_POST['field2'] . '-' . $_POST['field3'] . "\n"; 
    $ret = file_put_contents('submissions.txt', $data, FILE_APPEND | LOCK_EX); 
    if($ret === false) { 
     die('There was an error writing this file'); 
    } 
    else { 
     echo "$ret bytes written to file"; 
    } 
} 
else { 
    die('no post data to process'); 
} 
    } 

?> 

感謝您的幫助!

+0

什麼是html輸出? 「 – worenga

+0

」reCAPTCHA輸入不正確,請返回並重試(reCAPTCHA說:錯誤 - captcha-sol)「這是你的意思嗎?我的意思是,當點擊提交時它會正確轉發到php,但該小部件沒有顯示在網站上。 – Dockson

+0

試試這個:echo recaptcha_get_html($ publickey,$ error);什麼是錯誤? – user4035

回答

0

1.保存您的sign_up.html頁面爲sign_up.php 並刪除代碼,首先使其無需自定義即可使用。 2.您是否已將recaptchalib.php文件上載到您的根目錄。

<script type="text/javascript"> 
      var RecaptchaOptions = { 
      theme : 'white' 
     }; 
     </script>