Невидимая ReCaptcha для кнопки подписки
У меня есть простая подписка на новостную рассылку в нижней части сайта ( http://www.valleygolfwillmar.com/). Я получал много адресов электронной почты спам-ботов, поэтому решил добавить Invisible ReCaptcha, чтобы сократить количество непопулярных пользователей.
Кажется, все работает нормально, адрес электронной почты добавляется в файл.TXT, за исключением того, что когда вы нажимаете кнопку "подписаться", он открывает скрипт php, который используется для записи файла txt, в котором сохраняются все адреса электронной почты.
Перед добавлением recaptcha будет просто всплывающее сообщение с надписью "Подписка! Спасибо!". Как я могу сделать эту работу снова с невидимым ReCaptcha?
Вот код информационного бюллетеня:
<!-- Newsletter Form -->
<h4 class="letter-spacing-1">Join Our Newsletter</h4>
<p>Subscribe to Our Newsletter to get info on Upcoming Events & Offers</p>
<form id="newsletter" class="validate" action="php/newsletter.php"
method="post" data-success="Subscribed! Thank you!"
data-toastr-position="bottom-right">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
<input type="email" id="email" name="email"
class="form-control required" placeholder="Enter your Email">
<span class="input-group-btn">
<button class="btn btn-success g-recaptcha"
data-badge="inline"
data-sitekey="6LdIn1gUAAAAAB7ds1fYb2awLLPBKz1Z5d4qm23e"
data-callback="onSubmit" type="submit">Subscribe
</button>
</span>
</div>
</form>
<style>
.grecaptcha-badge {display: none;}
</style>
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
function onSubmit(token) {
document.getElementById("newsletter").submit();
}
</script>
<!-- /Newsletter Form -->
Вот код PHP для рассылки, которую я использовал:
<?php
/**
* @version v1.0.0
* @author
* @date Saturday, April 9, 2016
**/
date_default_timezone_set('Etc/UTC');
@ini_set('display_errors', 0);
@ini_set('track_errors', 0);
$array['email'] = isset($_REQUEST['email']) ? ckmail($_REQUEST['email']) : false;
if($array['email'] !== false) {
$fh = fopen('_newsletter.txt', 'a+');
fwrite($fh, "\r\n" . $array['email']);
fclose($fh);
unset($fh, $array);
}
/************************************
@CHECK EMAIL
/************************************/
function ckmail($email) {
$email = trim(strtolower($email));
if(preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/',trim($email))){
return $email;
} else {
return false;
}
}
?>