1) Заливаем в корень сайта каталог fonts и заменяем image.php на файл в архиве
2) /base/danneo.template.php
Найти:
# captcha
$this->unmanule['captcha'] = ($setting['captcha']=='yes' && defined("REMOTE_ADDRS")) ? 'yes' : 'no';
после вставить:
PHP код:
# secpic // новая captcha
if (@$_SESSION['secpic']) {unset($_SESSION['secpic']); }
@session_start();
$antibot="<img src='image.php' alt='защитный код'>";
найти:
$this->parseprint(array('uname'=>$usermain['uname'],
'title'=>$title,
'comment_name'=>$lang['comment_name'],
'comment_title'=>$lang['all_title'],
'comment_editor'=>$lang['comment_editor'],
'comment_list_smilie'=>$lang['comment_list_smilie'],
'smilielist'=>$smilielist,
'jsvar'=>$jsvar,
'id'=>$id,
'val'=>$val,
'comment_add_button'=>$lang['comment_add_button']
),$form);
}
заменить на:
$this->parseprint(array('uname'=>$usermain['uname'],
'title'=>$title,
'comment_name'=>$lang['comment_name'],
'comment_title'=>$lang['all_title'],
'comment_editor'=>$lang['comment_editor'],
'comment_list_smilie'=>$lang['comment_list_smilie'],
'smilielist'=>$smilielist,
'jsvar'=>$jsvar,
'id'=>$id,
'val'=>$val,
'antibot'=>$antibot, // каптча
'comment_add_button'=>$lang['comment_add_button']
),$form);
}
Модуль Mail
/mod/mail/index.php
найти:
$tm->unmanule['captcha'] = ($setting['captcha']=='yes' && defined("REMOTE_ADDRS")) ? 'yes' : 'no';
ниже вставить:
PHP код:
# secpic
if (@$_SESSION['secpic']) {unset($_SESSION['secpic']); }
@session_start();
$antibot="<img src='image.php' alt='защитный код'>";
найти:
$tm->parseprint(array('email_name'=>$lang['email_name'],
'email'=>$lang['e_mail'],
'email_text'=>$lang['email_text'],
'mail_hint'=>$lang['mail_hint'],
'uname'=>$usermain['uname'],
'umail'=>$usermain['umail'],
'email_send'=>$lang['email_send']
),$tm->parsein($tm->create('mod/'.WORKMOD.'/form.mail')));
заменить на:
$tm->parseprint(array('email_name'=>$lang['email_name'],
'email'=>$lang['e_mail'],
'email_text'=>$lang['email_text'],
'mail_hint'=>$lang['mail_hint'],
'uname'=>$usermain['uname'],
'umail'=>$usermain['umail'],
'antibot'=>$antibot, // каптча
'email_send'=>$lang['email_send']
),$tm->parsein($tm->create('mod/'.WORKMOD.'/form.mail')));
найти:
if($setting['captcha'] == 'yes'){
if(findcaptcha(REMOTE_ADDRS,$captcha) == 1){
#
include(DNBASE."temp/head.php");
#
$tm->parseprint(array('isset_error'=>$lang['isset_error'],
'error'=>$lang['bad_captcha'],
'go_back'=>$lang['all_goback']
),$tm->create('error'));
#
include(DNBASE."temp/foot.php");
#
}
}
заменить на:
/*
if($setting['captcha'] == 'yes'){
if(findcaptcha(REMOTE_ADDRS,$captcha) == 1){
#
include(DNBASE."temp/head.php");
#
$tm->parseprint(array('isset_error'=>$lang['isset_error'],
'error'=>$lang['bad_captcha'],
'go_back'=>$lang['all_goback']
),$tm->create('error'));
#
include(DNBASE."temp/foot.php");
#
}
}
*/
найти:
$sendnames = strtr($sendnames,"\015\012"," ");
$sendmails = strtr($sendmails,"\015\012"," ");
$subject = $lang['contact_subject']." - ".$setting['site'];
$message = this_text(array("br"=>"\r\n",
"sendname"=>$sendnames,
"sendmail"=>$sendmails,
"text"=>$sendtexts
),$lang['contact_msgtext']);
send_mail($setting['site_mail'],$subject,$message,$setting['site'],$sendmails);
заменить на:
if($setting['captcha'] == 'yes'){
if ($_POST['keystring']) { session_start(); }
if(isset($_SESSION['secpic']) && $_SESSION['secpic'] == $_POST['keystring']){
$sendnames = strtr($sendnames,"\015\012"," ");
$sendmails = strtr($sendmails,"\015\012"," ");
$subject = $lang['contact_subject']." - ".$setting['site'];
$message = this_text(array("br"=>"\r\n",
"sendname"=>$sendnames,
"sendmail"=>$sendmails,
"text"=>$sendtexts
),$lang['contact_msgtext']);
send_mail($setting['site_mail'],$subject,$message,$setting['site'],$sendmails);
} else {
if($ajax==0){ include("temp/head.php"); }
$error = $tm->create('error');
$tm->parseprint(array('isset_error'=>$lang['isset_error'],
'error'=>$lang['bad_captcha'],
'go_back'=>$lang['all_goback']),$error);
if($ajax==0){ include("temp/foot.php"); } else { exit(); }
}
}
открыть
/temp/Default/mod/mail/form.mail.tpl
найти:
<!--if:captcha:yes-->
<div>
<a onclick="DN.recaptcha(); return false;" href="javascript:DN.recaptcha(); return false;">Обновить</a>
<div id="captcha"><img src="image.php?to=captcha&t=12345" alt="" /></div>
<input name="captcha" style="width:7em" title="Введите цифры на картинке" type="text" maxlength="5" value="" /> <b>*</b>
</div>
<!--if-->
заменить на:
Код HTML:
<!--if:captcha:yes-->
<a onclick="DN.recaptcha(); return false;" href="javascript:DN.recaptcha(); return false;">Обновить</a><br/>
<div id="captcha">{antibot}</div>
<input name="keystring" id="keystring" size="20" type="text" maxlength="255">
<!--if-->
Модуль новости
Модуль:
/mod/news/comment.php
найти:
if($setting['captcha']=='yes'){
#
if(findcaptcha(REMOTE_ADDRS,$captcha)==1){
#
if($ajax==0){ include(DNBASE."temp/head.php"); }
$tm->parseprint(array('boxtitle'=>$lang['isset_error'],
'boxtext'=>$lang['bad_captcha'],
'go_back'=>$lang['all_goback']),$box);
if($ajax==0){ include(DNBASE."temp/foot.php"); } else { exit(); }
#
}
#
}
заменить на:
/*
if($setting['captcha']=='yes'){
#
if(findcaptcha(REMOTE_ADDRS,$captcha)==1){
#
if($ajax==0){ include(DNBASE."temp/head.php"); }
$tm->parseprint(array('boxtitle'=>$lang['isset_error'],
'boxtext'=>$lang['bad_captcha'],
'go_back'=>$lang['all_goback']),$box);
if($ajax==0){ include(DNBASE."temp/foot.php"); } else { exit(); }
#
}
#
}
*/
найти:
$comtext = ($setting['neditor']=="yes") ? commentparse($comtext) : deltags(commentparse($comtext));
#
$comname = (preparse($usermain['logged'],THIS_INT)==1 && preparse($usermain['userid'],THIS_INT)>0) ? $usermain['uname'] : substr(deltags($comname),0,50);
#
$comtitle = substr(deltags($comtitle),0,255);
#
$in = $db->query("INSERT INTO ".$basepref."_news_comment VALUES
(NULL,'".$item['newsid']."','".$usermain['userid']."','".NEWTIME."',
'".$db->escape($comname)."',
'".$db->escape($api->sitesp($comtitle))."',
'".$db->escape($comtext)."',
'".REMOTE_ADDRS."')");
заменить на:
if ($_POST['keystring']) { session_start(); }
if(isset($_SESSION['secpic']) && $_SESSION['secpic'] == $_POST['keystring']){ // CAPTCHA Correct
$comtext=($setting['neditor']=="yes") ? commentparse($comtext) : deltags(commentparse($comtext));
$comname = (preparse($usermain['logged'],THIS_INT)==1 && preparse($usermain['userid'],THIS_INT)>0) ? $usermain['uname'] : substr(deltags($comname),0,50);
$comtitle = substr(deltags($comtitle),0,255);
$in = $db->query("INSERT INTO ".$basepref."_news_comment VALUES
(NULL,'".$item['newsid']."','".$usermain['userid']."','".NEWTIME."',
'$comname','$comtitle','$comtext','".REMOTE_ADDRS."')");
} else { // CAPTCHA Wrong
if($ajax==0){ include("temp/head.php"); }
$tm->parseprint(array('boxtitle'=>$lang['isset_error'],
'boxtext'=>$lang['wrong_captcha'],
'go_back'=>$lang['all_goback']),$box);
if($ajax==0){ include("temp/foot.php"); } else { exit(); }
}
Шаблон
/temp/Default/mod/news/form.comment.tpl
найти:
<!--if:captcha:yes-->
<div>
<p><a onclick="DN.recaptcha(); return false;" href="javascript:DN.recaptcha(); return false;">Обновить</a></p>
</div>
<div>
<p><input name="captcha" style="width:9em" type="text" maxlength="5" value="" title="Код проверки" /> <b>*</b></p>
</div>
<!--if-->
заменить на
Код HTML:
<!--if:captcha:yes-->
<a onclick="DN.recaptcha(); return false;" href="javascript:DN.recaptcha(); return false;">Обновить</a><br/>
<div id="captcha">{antibot}</div>
<input name="keystring" id="keystring" size="20" type="text" maxlength="255">
<!--if-->
для изменения шрифта captcha, залейте шрифт/шрифты в папку fonts
Исходник:
secpic.zip