Google reCAPTCHA полезная вещь на сайте. Реально спасает от спама)
В Joomla есть плагин reCAPTCHA. Также reCAPTCHA можно использовать в ChronoForms. В этих случаях достаточно будет ввести в нужные поля ключи для сайта и секретный ключ.
Но давайте посмотрим как можно самому добавить Google reCAPTCHA на сайт.
Добавим сначала reCAPTCHA в нужную нам форму.
Добавляем скрипт:
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
Добавляем тэг в форму:
<div class="g-recaptcha" data-sitekey="sitekey"></div>
Для атрибута data-sitekey задаем ключ для сайта, его копируем из админ консоли гугла.
Теперь добавим код для серверной части.
В общем случае этот код будет вышлядеть так:
if($_SERVER["REQUEST_METHOD"] == "POST") { $recaptcha = $_POST['g-recaptcha-response']; if(!empty($recaptcha)) { $google_url = "https://www.google.com/recaptcha/api/siteverify"; $secret = 'Секретный ключ для серверной стороны'; $ip = $_SERVER['REMOTE_ADDR']; $url = $google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip; $res = SiteVerify($url); $res = json_decode($res, true); if($res['success']) { // Проверка каптчи пройдена успешно, продолжаем дальше выполнение проверки формы и т.д. } else { // Проверка не пройдена } } else { // Проверка не пройдена } }
Можно использовать API Joomla.
$jinput = JFactory::getApplication()->input; $recaptcha = $jinput->get('g-recaptcha-response', '', 'string');
Добавляем в PHP скрипт функцию SiteVerify()
function SiteVerify($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 15); curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"); $curlData = curl_exec($curl); curl_close($curl); return $curlData; }