У меня огромная проблема с моей reCAPTCHA!Спаммеры могут отправлять свои уродливые вещи, даже если у меня есть reCAPTCHA, установленный на моем веб-сайте.Я создал собственный скин для reCAPTCHA, и я перечитал их вики, чтобы убедиться, что я все сделал правильно, но, к сожалению, что-то пошло не так.
Вот как я это сделал:
Форма
<!-- reCAPTCHA -->
<div class="paddingbottom-5">
<div style="border: 1px solid #d1d1d1; width: 300px;">
<div id="recaptcha_image"></div>
</div>
</div>
<!-- reCAPTCHA: Textfield -->
<input type="text" name="recaptcha_response_field" id="recaptcha_response_field" tabindex="5">
<!-- reCAPTCHA: Reload -->
<a href="javascript:Recaptcha.reload()" class="noborder-link">
<img src="'.ICON.'arrow-circle-double-135.png" alt="" class="image-icon-right">
</a>
</div>
Конфигурация (хранится ниже require_once('configs/required/classes/class.recaptchalib.php');
в том же файле, что и форма)
$response = recaptcha_check_answer(
CAPTCHA_PRIVATE,
IPADDRESS_NOHASH,
$_POST['recaptcha_challenge_field'],
$_POST['recaptcha_response_field']
);
CAPTCHA_PRIVATE
содержитмой личный ключ для reCAPTCHA, который связан с нужным адресом (дух).IPADDRESS_NOHASH
выглядит так: define('IPADDRESS_NOHASH', get_realip());
.Функция "get_realip()
" выглядит следующим образом:
function get_realip() {
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
У меня также есть эта функция в JavaScript для применения моей пользовательской темы:
var RecaptchaOptions = {
theme : 'custom',
custom_theme_widget: 'recaptcha_widget'
};
Я создал файл класса для reCAPTCHA(class.recaptchalib.php) более красивым (например, теперь он имеет ту же структуру, что и структура формы), и я также удалил все, что принадлежит API MailHide, потому что я не использую этот API - только API reCAPTCHAs.
Что не так?Я что-то пропустил?
Заранее спасибо!