Мод RECAPTCHA.
И так,для тех кого достали боты делаем сложную РЕКАПТЧУ при регистрации:
ШАГ 1 -- Зарегистрируйте свой сайт на http://www.google.com/recaptcha/whyrecaptcha
и получите свои собственные recaptcha Public Key и Private key
ШАГ 2 -- Редактирование signup.php
* Найдите :
$signup_secure = $_POST['signup_secure'];
$code_found = false;
if( $signup_secure && @$_SESSION['code'] == $signup_secure )
$code_found = true;
if( !empty($_SESSION['codes']) && is_array($_SESSION['codes']) )
{
foreach( $_SESSION['codes'] as $index => $code_info )
{
if( $code_info['code'] == $signup_secure )
{
$code_found = true;
unset($_SESSION['codes'][$index]);
}
}
}
* Замените на это :
if ( $_POST["recaptcha_challenge_field"] )
{
if ( $_COOKIE[recaptcha_cooked] == $_POST["recaptcha_challenge_field"] )
{
setcookie("recaptcha_cooked", $_POST["recaptcha_challenge_field"],time() - 24*60*60,'/');
$code_found = true;
}
else
{
require_once('recaptchalib.php');
$privatekey = "[B]ВАШ_КЛЮЧ_PRIVATE_KEY[/B]";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid)
$code_found = false;
else
{
setcookie("recaptcha_cooked", $_POST["recaptcha_challenge_field"],0,'/');
$code_found = true;
}
}
}
else
{
$code_found = true;
}
* Найдите :
// ASSIGN VARIABLES AND INCLUDE FOOTER
* После этого добавьте
require_once('recaptchalib.php');
$publickey = "[B]ВАШ_КЛЮЧ_PUBLIC_KEY[/B]"; // Получено на странице регистрации
$smarty->assign('recaptcha',recaptcha_get_html($publickey));
$smarty->assign('recaptcha_challenge_field', $_POST[recaptcha_challenge_field]);
$smarty->assign('recaptcha_response_field', $_POST[recaptcha_response_field]);
ШАГ 3 -- Редактирование templates/signup.tpl
* Найти :
<input type='hidden' name='signup_cat' value='{$signup_cat}'>
* После добавить
<input type='hidden' name='recaptcha_challenge_field' value='{$recaptcha_challenge_field}'>
<input type='hidden' name='recaptcha_response_field' value='{$recaptcha_response_field}'>
* Найти :
<td><input type='text' name='signup_secure' class='text' size='6' maxlength='10'> </td>
<td>
<table cellpadding='0' cellspacing='0'>
<tr>
<td align='center'>
<img src='./images/secure.php' id='secure_image' border='0' height='20' width='67' class='signup_code'><br />
<a href="javascript:void(0);" onclick="$('secure_image').src = './images/secure.php?' + (new Date()).getTime();">{lang_print id=975}</a>
</td>
<td>{capture assign=tip}{lang_print id=691}{/capture}<img src='./images/icons/tip.gif' border='0' class='Tips1' title='{$tip|escape:quotes}'></td>
</tr>
</table>
</td>
* Заменить на :
<td height=100>
{$recaptcha}
</td>
ШАГ 4 -- Загрузить recaptchalib.php в корень (в аттаче)
ВАЖНО! Не стоит волноваться,если РЕКАПТЧА у вас сразу не будет показываться.Помните,что ей нужно какое-то время,чтоб она активировалась в Google`е
Удачи!
Обсуждение на форуме Talk.SocEngine.Ru