2017-04-25 5 views
0

alle. Ich habe versucht, googles reCAPTCHA zu integrieren, und es scheint so zu sein, als würde ich versuchen, recaptcha_get_html zu echotieren. Es kommt zu einem undefinierten Funktionsfehler. Ich habe überall nachgesehen und bekomme keine klare Antwort. Ich bin mit PHP halbwegs gut und verstehe nicht alles. Kann mir bitte jemand erklären, wie ich die fehlende Funktion finden kann. Also meine Frage ist, ist es notwendig, diese Funktion zu echo ?. Hier ist mein Code:Warum muss "recaptcha_get_html" geantwortet werden?

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

Vielen Dank im Voraus.

+0

Das letzte Mal, als ich überprüfte die Client-Seite wurde vollständig auf JavaScript basiert: https://github.com/google/recaptcha/blob/master/examples/example-captcha.php –

Antwort

0

Ok, vor allem nicht wenn diese Funktion nicht echo müssen! Wie J-H meinte, möchten Sie vielleicht zuerst auf die neueste Version von Recaptcha aktualisieren. Hier ist, wie ich google recaptcha in PHP implementiert

$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 

Beachten Sie, wie ich Echo nichts. Außerdem sollte der öffentliche Schlüssel im HTML-Code enthalten sein, der private Schlüssel sollte im PHP-Code enthalten sein. Der öffentliche Schlüssel sollte nicht im PHP sein, ich weiß nicht, ob das ein Tippfehler war, aber das könnte auch ein anderes Problem sein. Schließlich sieht es so aus, als ob Sie das HTML nicht korrekt für die Google Recaptcha API verwenden, zumindest für die neue. Include <script src='https://www.google.com/recaptcha/api.js'></script> in Ihrer Kopfzeile und <div style="margin:10px auto 0 auto; width:330px" class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div> , wo Sie möchten, dass die Recaptcha angezeigt werden. Dann wird alles funktionieren. Prost

+0

Die Client-Seite funktioniert gut, es ist nur die Bestätigung, die ich nicht bekomme, weil Kunden sagen, dass sie immer noch Spam bekommen. –

+0

Und verify.php scheint keine Rückmeldung zu geben. –

Verwandte Themen