Настройка новой версиеи Google reCaptcha

Компания Google представила новую версию reCaptcha API: новый дизайн и механизм проверки. Данная утилита поможет защитить ваши формы от спама и роботов. В этом уроке мы расскажем как внедрить новую версию reCaptch. В частности создадим скрипт входа пользователя на сайт.

Работа с новой версией Google reCaptcha-3

Получение reCaptcha Key

Жмите сюда для создания приложения Google reCaptcha.

Регистрация вашего сайта

Предоставьте адрес вашего сайта без “http:”

Работа с новой версией Google reCaptcha-4

Google Site Key

Данный код нужно вставить на HTML страницу.

Работа с новой версией Google reCaptcha-5

Google Secret Key

Данное значение необходимо для взаимодействия с Google.

Работа с новой версией Google reCaptcha-6

HTML Code

HTML код с виджетом Google reCaptcha. Тут вам необходимо изменить значение Google Site Key.

<html> 
<head>
    /* Google reCaptcha JS */
    <script src="https://www.google.com/recaptcha/api.js"></script>  
</head> 
<body> 
<form action="" method="post">   
    Username  
    <input type="text" name="username" class="input" />  
    Password   
    <input type="password" name="password" class="input" />   
    <div class="g-recaptcha" data-sitekey="Google Site Key"></div>   
    <input type="submit"  value="Log In" />  
    <span class='msg'><?php echo $msg; ?></span> 
</form> 
</body>  
</html>  

Работа с новой версией Google reCaptcha-7

index.php

В вашем случае необходимо изменить Google Secret Key.

<?php 
include("db.php");
session_start(); 
$msg='';  

if($_SERVER["REQUEST_METHOD"] == "POST") {     
    $recaptcha=$_POST['g-recaptcha-response'];   
    if(!empty($recaptcha)) {
        include("getCurlData.php");
        $google_url="https://www.google.com/recaptcha/api/siteverify";         
        $secret='Google Secret Key'; 
        $ip=$_SERVER['REMOTE_ADDR'];
        $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;   
        $res=getCurlData($url);  
        $res= json_decode($res, true);   
        //reCaptcha введена     
        if($res['success']) {
            // Продолжаем проверку данных формы  
        } else {
            $msg="Please re-enter your reCAPTCHA."; 
        } 
    } else { 
        $msg="Please re-enter your reCAPTCHA.";   
    } 
}
?>

Проверка логина

В данном коде мы проверяем имя пользователя и пароль в нашей базе данных.

$username=mysqli_real_escape_string($db,$_POST['username']);
$password=md5(mysqli_real_escape_string($db,$_POST['password']));
if(!empty($username) && !empty($password)) {
    $result=mysqli_query($db,"SELECT id FROM users WHERE username='$username' and passcode='$password'"); 
    $row=mysqli_fetch_array($result,MYSQLI_ASSOC); 
    if(mysqli_num_rows($result)==1) {
        $_SESSION['login_user']=$username;   
        header("location: home.php"); //перенаправляем на страницу успеха 
    } else {
        $msg="Please give valid Username or Password.";  
    }
} else {
    $msg="Please give valid Username or Password."; 
}

getCurlData.php

CURL-функция для проверки Google reCaptcha. Активируйте расширение php_curl в файле php.ini.

<?php 
function getCurlData($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16");
    $curlData = curl_exec($curl);
    curl_close($curl);
    return $curlData;
}

db.php

Файл конфигурации соединения с базой данных.

<?php 
define('DB_SERVER', 'localhost');  
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password'); 
define('DB_DATABASE', 'database');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE); 
?>
Источник урока: http://www.9lessons.info/2014/12/google-new-recaptcha-using-php-are-you.html
Перевел: Станислав Протасевич, источник
 

Добавить комментарий


Защитный код
Обновить