Яндекс.Практикум

PHP. Настройка reCAPTCHA 2.0 – Демо / Мануал

reCAPTCHA система для защиты веб-сайтов от ботов. ReCAPTCHA 2.0 немного отличается от старой reCAPTCHA. Вам больше не требуется вводить текст в специальное поле, достаточно просто нажимать кнопку.

Метод проверки пользователей немного отличается. Переменная g-recaptcha-response отправляется через POST запрос в ваш скрипт на стороне сервера. Для работы ReCaptcha вам нужен ключ, который вы можете получить после регистрации. Ответ возвращается в формате JSON, поэтому мы будем использовать функции file_get_contents и json_decode.

Ниже приведен HTML-код простой контактной формы. DIV с классом g-recaptcha – это то место, где мы фактически помещаем наш captcha-у. Вы должны заменить значение data-sitekey ключом, который вы получаете от Google, когда подписываетесь.

[bs_notification type=”danger” dismissible=”false”] Внимание нужно вставлять не Секретный ключ![/bs_notification]

HTML форма

<form action="mail.php" method="post" enctype="multipart/form-data">
	<input name="sender_name" placeholder="Your Name..."/>
	<input name="sender_email" placeholder="Your email..."/>
	<textarea placeholder="Your Message..." name="sender_message">
        <div class="captcha_wrapper">
		<div class="g-recaptcha" data-sitekey="YOUR_KEY"></div>
	</div>
	<button type="submit" id="send_message">Send Message!</button>
</form>
<script src='https://www.google.com/recaptcha/api.js'></script>

PHP Server-Side Script

Ниже приведен пример PHP скрипта обработчика. В данном скрипте вам нужно вставить ваш Секретный ключ в переменную secret. Т.е заменить значение YOUR_SECRET вышим ключем.

<?php
	$sender_name = stripslashes($_POST["sender_name"]);
	$sender_email = stripslashes($_POST["sender_email"]);
	$sender_message = stripslashes($_POST["sender_message"]);
	$response = $_POST["g-recaptcha-response"];
	$url = 'https://www.google.com/recaptcha/api/siteverify';
	$data = array(
		'secret' => 'YOUR_SECRET',
		'response' => $_POST["g-recaptcha-response"]
	);
	$options = array(
		'http' => array (
			'method' => 'POST',
			'content' => http_build_query($data)
		)
	);
	$context  = stream_context_create($options);
	$verify = file_get_contents($url, false, $context);
	$captcha_success=json_decode($verify);
	if ($captcha_success->success==false) {
		echo "<p>Ты бот! Давай досвидание!</p>";
	} else if ($captcha_success->success==true) {
		echo "<p>Ты человек! Давай проходи!</p>";
	}
?>

 

Понравилась статья? Поделиться с друзьями:
IPCalc Blog
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: