2014-12-29 23 views
5

Tôi đang cố triển khai Googles 'NoCaptcha' mới trên trang web của mình. Cho đến nay tôi có các widget xuất hiện tốt, nhưng nó không xác minh trên trang PHP của tôi.Google ReCaptcha mới không đăng/nhận 'g-recaptcha-response'

Mã của tôi được thiết lập như vậy:

Trong <head>

<script src='https://www.google.com/recaptcha/api.js'></script> 

Client Side:

<form id="contactform" action="bookingverify.php" method="POST"> 
<input type="text" name="name" size="41"> 
<!--OTHER FORM INPUTS--> 
<div class="g-recaptcha" data-sitekey="mypublickey"></div> 
</form> 

Server Side (bookingverify.php)

$captcha; 
    if(isset($_POST['g-recaptcha-response'])){ 
     $captcha=$_POST['g-recaptcha-response']; 
    } 
    if(!$captcha){ 
     echo '<h2>Please check the the captcha form.</h2>'; 
     exit; 
    } 

    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=myprivatekey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); 

    if($response.success==false){ 
      echo '<h2>You are spammer</h2>'; 
    } 
    else{ 
    //SEND MAIL 
    } 

tôi 'đã đã thử lặp lại $_POST['g-recaptcha-response'] nhưng có vẻ trống. Nó giống như biến đó không được đăng lên php.

Có ai biết tôi đang làm gì sai ở đây không?

Trả lời

2

Mã của bạn chạy tốt trên máy chủ thử nghiệm của tôi bằng khóa riêng/khóa công khai của riêng tôi. Nó có vẻ tầm thường, nhưng điều duy nhất tôi phải thêm - bạn có một nút gửi trong các hình thức đầu vào khác của bạn? Đây là những gì thực sự đăng dữ liệu lên tập lệnh PHP của bạn.

<input type="submit"> 
</form> 

Nếu không, hãy thêm var_dump($_POST['g-recaptcha-response']); vào bookingverify.php của bạn và xem kết quả đầu ra.

+0

Có lỗi tôi đã đặt nút gửi - chỉ quên để bao gồm nó ở trên. Khi tôi làm dump tôi chỉ nhận được NULL - PHP chỉ là không nhận được dữ liệu khóa riêng – MeltingDog

+0

Tôi có cùng một vấn đề của MeltingDog, và tôi đã không đầu mối làm thế nào để giải quyết nó –

1

OK Tôi không biết tại sao nhưng tôi đã xóa exit; trong câu lệnh IF thứ 2 và nó hoạt động. Kỳ dị.

+1

Tôi đang gặp vấn đề tương tự như bạn. Nhưng bạn cần lối ra đó nếu không họ có thể vượt qua mà không cần thực hiện xác minh lol. Tôi không chắc tại sao nó lại xảy ra. – frosty

-2

tôi gặp sự cố tương tự. Rõ ràng nếu bạn không bấm vào hộp kiểm, $ _POST ['g-recaptcha-response'] sẽ trống. vì vậy chỉ cần chắc chắn rằng bạn nhấp vào nó khi thử nghiệm

Các vấn đề liên quan