Компания Google представила новую версию reCaptcha API: новый дизайн и механизм проверки. Данная утилита поможет защитить ваши формы от спама и роботов. В этом уроке мы расскажем как внедрить новую версию reCaptch. В частности создадим скрипт входа пользователя на сайт.
Получение reCaptcha Key
Жмите сюда для создания приложения Google reCaptcha.
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>
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."; } } ?>
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; }
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.9lessons.info/2014/12/google-new-recaptcha-using-php-are-you.html
Перевел: Станислав Протасевич
ReCAPTCHA placeholder element must be empty
Remove this from the <head></head>
. It's redundant.
<script src='https://www.google.com/recaptcha/api.js'></script>