Hướng dẫn sử dụng Google Recaptcha với PHP #2

Trong bài trước: Hướng dẫn sử dụng google recaptcha phần 1, mình đã hướng dẫn các bạn đăng ký google recaptcha. Trong bài viết này mình sẽ hướng dẫn các bạn tích hợp nó vào trong website.

Đầu tiên chúng ta xem lại các thông số trong Google recaptcha mà chúng ta đã đăng ký:

Để đơn giản, mình sẽ chỉ hướng dẫn làm trên 1 file duy nhất. Sau khi hiểu, các bạn có thể thêm nó vào trong project một cách tuỳ thích. Các bạn tạo 1 file index.php và chèn nội dung HTML ban đầu vào nhé:

<html>
<head>
    <title>reCAPTCHA demo</title>
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20src%3D'https%3A%2F%2Fwww.google.com%2Frecaptcha%2Fapi.js'%3E%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
</head>
<body>
    
<h1>Google reCAPTHA Demo</h1>

    
<form action="index.php" method="POST">
        <input type="text" name="username" placeholder="Username">
        
        
        <input type="submit" value="Save" name="submit">
        
        
        
<div class="g-recaptcha" data-sitekey="6LflfWgUAAAAAH65UoKYc5Wvr0I2kLtmbgme7qvS"></div>

      
    </form>

</body>
</html>

Phần này cũng khá dễ hiểu ha. Ở đây mình tạo 1 cái form đơn giản. Các bạn chú ý chèn thư viện của google recaptcha trong thẻ script, và chèn thẻ div chứa data-sitekey của bác bạn vào nhé. Chỗ này nó sẽ hiển thị ra hộp thoại kiểm tra “I’m not a robot” đó. Sau khi chạy chúng ra sẽ được kết quả như sau:

Đó là phần xử lý phía giao diện, còn phần xử lý php nữa. Bạn để ý ở Step2 trên trang chủ google recaptcha có hướng dẫn:

Ta chèn đoạn code php sau vào đầu:

<?php
if(isset($_POST['submit'])){
    $username = $_POST['username'];
    $secretKey = "6LflfWgUAAAAAIMzGTREwqSG8pMWfWa_ikSQP_N6";
    $responsenKey = $_POST['g-recaptcha-response'];
    $userIP = $_SERVER['REMOTE_ADDR'];

    $url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responsenKey&remoteip=$userIP";
    $response = file_get_contents($url);
    $response = json_decode($response);
    if($response->success){
        echo "Verification success. Your name is: $username";
    } else {
        echo "Verification failed!!";
    }

}
?>

Vậy là xong. Giờ chạy và xem kết quả nào. Nếu không check I’m not a robot thì sẽ báo “Verification failed!!”. Nếu check vào sẽ được “Verification success. Your name is: …”
Chạy được như vậy là thành công rồi đó.

2
Leave a Reply

avatar
  Subscribe  
newest oldest
Notify of
Tam
Guest
Tam

Bạn ơi bài viết hay quá bạn viết thêm đi ạ!

Nguyen thi le
Guest
Nguyen thi le

like
hay lam