2017-04-25 51 views
0

全部。我一直在嘗試整合Google的reCAPTCHA,並且在嘗試echo recaptcha_get_html時似乎失敗了。它出現了一個未定義的函數錯誤。我到處尋找,似乎無法得到直接的答案。我對PHP非常好,並沒有完全理解所有的東西。有人可以解釋我如何找到缺失的功能。所以我的問題是,是否需要回顯此功能?這裏是我的代碼:爲什麼需要回顯「recaptcha_get_html」?

<form class="" action="verify.php" method="post"> 
     <input type="text" name="email" value=" enter email address" onFocus="if(this.value==' enter email address')this.value='';" style="height:18px; width:218px; color: #cccccc; border: 1 solid #000000; background-color: #5e5e5e; font: xx-small Verdana"> 
     &nbsp; <br><br> 
     <?php 
     require_once('recaptchalib.php'); 
     $publickey = "// Public Key"; 
     echo recaptcha_get_html($publickey); 
     ?> 
     <br> 
     <input type="submit" id="sendform" name='send' value=" send " style="cursor: hand; height:18px; border: 1 solid #000000; background-color:#5e5e5e; color: #cccccc; font: xx-small Verdana; font-weight:bold"> 
    </form> 

在此先感謝。

+0

上次我檢查客戶端完全基於JavaScript:https://github.com/google/recaptcha/blob/master/examples/example-captcha.php –

回答

0

好吧,首先,沒有你不需要回顯功能! 正如J-H所言,您可能首先想要更新爲最新版本的recaptcha。 這裏是我是如何實現谷歌驗證碼在PHP

$secret = "Your secret key"; 
$reCaptcha = new ReCaptcha($secret); 
    if ($_POST["g-recaptcha-response"]) { 
     $response = $reCaptcha->verifyResponse ( 
    $_SERVER["REMOTE_ADDR"], $_POST["g-recaptcha-response"]); 
    } 

    if(!($response != null && $response->success)) ... 
     //it was successfully 

通知我怎麼不迴應任何事情。另外,公鑰應該在html中,私鑰應該在PHP中。公鑰不應該在PHP中,我不知道這是否是一個錯字,但這也可能是另一個問題。最後,它看起來好像你沒有正確使用html recaptcha api,至少是新的。 包括<script src='https://www.google.com/recaptcha/api.js'></script> 在您的標題和<div style="margin:10px auto 0 auto; width:330px" class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div> 您希望在哪裏出現recaptcha。那麼你將擁有一切工作。乾杯

+0

客戶端工作正常,這只是我沒有得到的驗證,因爲客戶說他們仍然在收到垃圾郵件。 –

+0

並且verify.php似乎沒有提供任何反饋。 –