Google reCaptcha v2 - "Tôi không phải là người máy"
Phan Nhật Chánh - Official website

Google reCaptcha v2 - "Tôi không phải là người máy"

   Dec 16, 2014   
Báo lỗi bài viết×
Google đã nâng cấp reCaptcha của họ thân thiện cho người dùng với một tag "Tôi không phải là người máy (I'm not a Robot)". Thông thường, với phiên bản củ bạn cần phải nhập các ký tự mã xác nhận loằng ngoằng, nhưng điều này sẽ được cải thiện ở phiên bản reCaptcha mới mà không cần phải sử dụng để nhập các ký tự xác nhận. Tuy nhiên, bạn cũng phải nhập các ký tự xác nhận nếu có sự nghi ngờ từ google.

Ví dụ đăng nhập cơ bản bằng PHP kết hợp reCaptcha

- Để bắt đầu, bạn cần phải đăng ký SiteKeySecretKey từ https://www.google.com/recaptcha
- Đăng ký:
Huong dan su dung Google reCaptcha v2 don gian bang PHP
Sau khi đăng ký, bạn sẽ nhận được Google Site KeyGoogle Secret Key

- Google Site Key: bạn sẽ  sử dụng mã này cho trang HTML

- Google Secret Key: mã này sẽ giúp trang web của bạn tiếp xúc với Google

- Tiếp theo, tạo một trang HTML đơn giản như sau index.html (thay đổi data-sitekey của riêng bạn)
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Google reCaptcha v2 - Demo Login</title>
<link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="http://getbootstrap.com/examples/signin/signin.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<form class="form-signin" role="form" action="validateform.php" method="POST">
<div id="status"></div>
<h2 class="form-signin-heading">Đăng nhập</h2>
<label for="inputEmail" class="sr-only">Username</label>
<input type="text" name="txtuser" id="inputEmail" value="" class="form-control" placeholder="Tên đăng nhập" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="txtpass" id="inputPassword" value="" class="form-control" placeholder="Mật khẩu" required>
<div class="g-recaptcha" data-sitekey="6LcnV_8SAAAAAGBwDp38k-tY1c9sugh27MJqPuO4"></div>
<button class="btn btn-lg btn-primary btn-block" type="submit" name="ok">Đăng nhập</button>
</form>
<div style=" text-align:center;font-size:12px;margin-top:20px"><span class="msg">Chú ý:</span> Tên đăng nhập: <strong>nhatchanh.info</strong> | Mật khẩu: <strong>admin</strong></div>
</div> <!-- /container -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://getbootstrap.com/dist/js/bootstrap.min.js"></script>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</body>
</html>
Huong dan su dung Google reCaptcha v2 - Login don gian bang PHP

Nếu bạn muốn sử dụng theme dark và xác minh reCaptcha bằng Audio thì bạn thay đoạn <div>...</div> trên thành
<div class="g-recaptcha" 
data-sitekey="6LcnV_8SAAAAAGBwDp38k-tY1c9sugh27MJqPuO4" data-theme="dark" data-theme="dark" data-type="audio"></div>

- Tạo một trang validateform.php để kiểm tra các giá trị đầu vào: (thay đổi $secret_key của riêng bạn)
<?php
//@author = nhatchanh.info
require_once "recaptchalib.php";
// reCAPTCHA hỗ trợ hơn 40 ngôn ngữ, xem tại: https://developers.google.com/recaptcha/docs/language
$lang = "en";
// Phản ứng từ reCAPTCHA
$resp = null;
// Thông báo lỗi từ reCAPTCHA nếu có
$error = null;
$secret_key = "6LcnV_8SAAAAAJB-F7XM3l9JUQF3s8SrDxuTjN5E"; //Thay đổi secret_key của bạn - https://www.google.com/recaptcha/admin
$reCaptcha = new ReCaptcha($secret_key);

if(isset($_POST['ok'])){
if($_POST['txtuser'] != "nhatchanh.info"){
echo "<p style='color:#FF0000'>Tên đăng nhập không đúng.</p>";
}else{
$u=$_POST['txtuser'];
}
if($_POST['txtpass'] != "admin"){
echo "<p style='color:#FF0000'>Mật khẩu không đúng.</p>";
}else{
$p=$_POST['txtuser'];
}

if ($_POST["g-recaptcha-response"]) {
$resp = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
//print_r($resp);
} else {
echo "<p style='color:#FF0000'>Bạn chưa xác nhận Recaptcha</p>";
}
if ($resp != null && $resp->success && $u && $p) {
echo "<p style='color:#0099FF'>Bạn đả đăng nhập thành công!</p>";
//Hiển thị thông tin khi đăng nhập thành công
echo "Tên đăng nhập: <a href='http://".$u."'>".$u."</a>";
}
}
?>
Chúc thành công!

Post a Comment