Считаю необходимым внедрение в Virtuemart 1.0.15 (ВМРЕ) механизм защиты от автоматической регистрации спам-ботами Captcha (KCAPTCHA).
Вот рецепт:
1. Скачиваем
lite версию KCAPTCHA (48кб). Распаковываем содержимое в корень сайта.
2. Открываем файл
/languages/russian.php и добавляем следующую строку в конце файле перед закрывающей скобкой:
var $_PHPSHOP_SHOPPER_FORM_CAPTCHA = 'Введите код с картинки:';
Далее, открываем файл
administrator/components/com_virtuemart/html/checkout_register_form.php и после строк 85-88
if( $VM_LANG->$property != "" ) {
$shopper_fields['extra_field_'.$i] = $VM_LANG->$property;
}
}
добавляем следующий фрагмент кода:
// Begin Captcha Hack - thomas_freeman www.KustomServices.com //
// Verfiy this is a real person?
$shopper_fields['captcha'] = $VM_LANG->_PHPSHOP_SHOPPER_FORM_CAPTCHA;
// End Captcha Hack //
В этом же файле после строк 203-205:
case 'extra_field_4': case 'extra_field_5':
eval( "\$ps_html->list_$fieldname( mosGetParam( \$_REQUEST, '$fieldname'), \"id=\\\"$fieldname\\\"\");" );
break;
добавляем такой код:
// Begin Captcha Hack - thomas_freeman www.KustomServices.com //
case 'captcha':
echo '<div>';
echo '<img src="/kcaptcha/index.php?' . session_name("virtuemart") . '=' . session_id() . '" alt="Turn on pictures showing" /></div>';
echo '<div><input type="text" id="'.$fieldname.'_field" name="captcha" size="30" class="inputbox" />'."\n";
echo '</div>';
break;
// End Captcha Hack //
Открываем файл
administrator/components/com_virtuemart/classes/ps.shopper.php и после строк 47-48:
if (empty($d['email'])) { $provided_required = false; $missing .= "email,"; }
}
добавляем такой фрагмент:
// Begin Captcha Hack - thomas_freeman www.KustomServices.com //
$captcha_string=$_POST['captcha'];
if(!isset($_SESSION['captcha_keystring'])||$_SESSION['captcha_keystring']!==$captcha_string)
{
$provided_required = false;
$missing .= "verification_code,";
unset($_SESSION['captcha_keystring']);
}
// END Captcha PATCH
Источник:
http://forum.virtuemart.net/index.php?topic=29928По материалам:
http://joomup.com/blog/2007/07/04/captcha-backend-login-form/(Авторы: thomas_freeman, Physicist)