2013-12-08 129 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>