recaptcha на любой сайт

0 получить два ключа на https://www.google.com/recaptcha/

1 index.html

<form method="post" id="feedback">
    <label>
        <input type="text" name="name" placeholder="Имя" value="" required>
    </label>
    <label>
        <input type="email" name="email" placeholder="Email" value="" required>
    </label>
    <label>
        <input type="text" name="phone" placeholder="Телефон" value="">
    </label>
    <label>
        <textarea name="msg" placeholder="Сообщение" required></textarea>
    </label>
    <div class="g-recaptcha" data-sitekey="здесь ваш не секретный ключ"></div>
    <input type="hidden" name="form_name" value="Форма обратной связи">
    <input type="submit" name="submit" value="Отправить">
</form>

<script>
    $(document).ready(function () {
        $('#feedback').submit(function (event) {
            var $form = $(this);
            $.ajax({
                type: $form.attr('method'),
                url: '/send.php',
                data: $form.serialize(),
                cache: false,
                success: function (data) {
                    if (data === 'sent') {
                        alert('Спасибо, Ваша заявка отправлена!');
                        window.location.href = '/';
                    } else if (data === 'captcha error') {
                        alert('Нажмите на "Я не робот"');
                    } else {
                        alert('Ошибка, обратитесь к администрации сайта!')
                    }
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    console.log('error...', xhr);
                }
            });
            return false;
        });
    });
</script>

2 send.php

<?
$url       = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha = $_POST['g-recaptcha-response'];
$secret    = 'здесь ваш секретный код с https://www.google.com/recaptcha/';
$ip        = $_SERVER['REMOTE_ADDR'];
$url_data  = $url . '?secret=' . $secret . '&response=' . $recaptcha . '&remoteip=' . $ip;
$curl      = curl_init();
curl_setopt( $curl, CURLOPT_URL, $url_data );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
$res = curl_exec( $curl );
curl_close( $curl );
$res = json_decode( $res );

if ( $res->success == '1' ) {
	$email   = 'здесь email для уведомлений';
	$subject = $_SERVER['SERVER_NAME'] . ' - ' . htmlspecialchars( $_POST['form_name'] );
	$message = 'Имя: ' . htmlspecialchars( $_POST['name'] ) . '<br>';
	$message .= 'Email: ' . htmlspecialchars( $_POST['email'] ) . '<br>';
	$message .= ! empty( htmlspecialchars( $_POST['phone'] ) ) ? 'Телефон: ' . htmlspecialchars( $_POST['phone'] ) . '<br>' : '';
	$message .= 'Сообщение: ' . htmlspecialchars( $_POST['msg'] ) . '<br>';
	$headers = "From: <noreply@" . $_SERVER['SERVER_NAME'] . ">\nContent-Type: text/html; charset=\"utf-8\"";
	if ( mail( $email, $subject, $message, $headers ) ) {
		echo 'sent';
	} else {
		echo 'not sent';
	}
} else {
	echo 'captcha error';
}



Подписаться на рассылку новостей сайта через FeedBurner:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *