0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 15108 Просмотров
*

Sulpher

  • Живу я здесь
  • 2054
  • 393 / 15
  • Шаблоны и расширения Joomla
Считаю необходимым внедрение в 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
Код: php
		if( $VM_LANG->$property != "" ) {
$shopper_fields['extra_field_'.$i] = $VM_LANG->$property;
}
}

добавляем следующий фрагмент кода:
Код: php
		// 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:
Код: php
	   		case 'extra_field_4': case 'extra_field_5':
    eval( "\$ps_html->list_$fieldname( mosGetParam( \$_REQUEST, '$fieldname'), \"id=\\\"$fieldname\\\"\");" );
    break;
добавляем такой код:
Код: php
	// 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:
Код: php
			if (empty($d['email'])) { $provided_required = false; $missing .= "email,"; }
}

добавляем такой фрагмент:
Код: php
	// 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)
*

PaLyCH

  • Давно я тут
  • 948
  • 146 / 19
  • Архитектор сайтов

Хм... Ввод любого кода приводит к прохождению регистрации... Это только у меня? Или у всех так?
*

Exciter

  • Захожу иногда
  • 155
  • 9 / 0
  • Теория + практика
А как тоже самое сделать в 1.1.3 ?
*

mich

  • Осваиваюсь на форуме
  • 10
  • 1 / 0
Вот поставил все по инструкции , а при регистрации и заполнении всех полей выводит , что проверьте мол все ли заполнили?...версия VM1.0.12.

Цитировать
Вот поставил все по инструкции , а при регистрации и заполнении всех полей выводит , что проверьте мол все ли заполнили?...версия VM1.0.12.
проблема решается заменой в index.php (в каталоге kcaptcha) кода на следующий
Код
<?php

error_reporting (E_ALL);

/* Using:

<?php
session_start();
?>
<form action="./" method="post">
<p>Enter text shown below:</p>
<p><img src="PATH-TO-THIS-SCRIPT?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p><input type="text" name="keystring"></p>
<p><input type="submit" value="Check"></p>
</form>
<?php
if(count($_POST)>0){
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring']){
echo "Correct";
}else{
echo "Wrong";
}
}
unset($_SESSION['captcha_keystring']);
?>

*/

include('kcaptcha.php');

//if(isset($_REQUEST[session_name()])){
// session_start();
//}

$captcha_obj = new KCAPTCHA();

//if($_REQUEST[session_name()]){
session_name('virtuemart');
session_start();
$_SESSION['captcha_keystring'] = $captcha_obj->getKeyString();
//}

?>
все дело в session_name('virtuemart'); ^-^
« Последнее редактирование: 03.04.2009, 11:06:51 от Felix.u »
*

shipa

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Как сделать это в Joomla 1.5?
*

Nira_S

  • Осваиваюсь на форуме
  • 20
  • 4 / 0
*

rapira

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
« Последнее редактирование: 08.04.2010, 18:38:45 от rapira »
*

gogison

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
  • Регистрации в каталогах, форумах, досках, новостях

Вот рецепт:
1. Скачиваем lite версию KCAPTCHA (48кб). Распаковываем содержимое в корень сайта.


Люди не делайте этого - сайт перестает работать!
*

back

  • Захожу иногда
  • 216
  • 7 / 0
  • Все просто если по очереди)
А как на счет версий магазина по старше?
*

antp

  • Новичок
  • 4
  • 0 / 0
А как на счет версий магазина по старше?
У меня VirtueMart 1.1.7 stable на Joomla 1.5.22 Stable, долго не думая, скачал osolCaptcha установил, в настройках плагина: "галачку" на включить, Auto add in (joomla default)Registration - да, остальное по-вкусу, дальше сохраняем и проверяем стандартную регистрацию Joomla, должна появится CAPTCHA..

Чтобы появилась CAPTCHA в регистрационной форме VirtueMart, редактируем: administrator\components\com_virtuemart\html\checkout_register_form.php

Ищем
Код: php
echo '
<input type="submit" value="'. $VM_LANG->_('BUTTON_SEND_REG'). '" class="button" onclick="return( submitregistration());" />

и выше него вставляем
Код: php
global $mainframe;
$mainframe->triggerEvent('onShowOSOLCaptcha', array(false));

Сохраняем, и проверяем... у меня заработало с первого раза..
*

hawkmax

  • Новичок
  • 7
  • 2 / 0
Сделал капчу OSOLCaptcha, работает на ура. Через страницу зайти невозможно без CAPTCHA. Но вот проблема, спамеры до сих пор ломятся как будто ее нет. Походу действуют через post запросы.
Нашел на форуме решение проблемы для обычной регистрации joomla
http://joomlaforum.ru/index.php/topic,76386.msg820353.html#msg820353
Можно его как нить привязать для виртулмарта?
*

kottom

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
а как поставить капчу в раздел "отправить вопрос по товару" 
*

coolon

  • Захожу иногда
  • 59
  • 0 / 0
EasyCalcCheck PLUS, OSOLCaptcha как то не интересно, зелёная она какае то, подскажите другие варианты?
« Последнее редактирование: 27.12.2011, 04:30:26 от coolon »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 47532
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 21147
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 38
Просмотров: 18597
Последний ответ 09.06.2016, 00:15:58
от prostonau
Хаки для убыстрения VirtueMart (уменьшение запросов и т.п.)

Автор yadrinez

Ответов: 197
Просмотров: 73451
Последний ответ 05.02.2016, 21:53:34
от flyingspook
VirtueMart 1.1.8 - Наличие: Есть (по умолчанию) + Наличие: ZZZ (бр

Автор Nessy74

Ответов: 6
Просмотров: 1827
Последний ответ 22.01.2016, 13:24:17
от AzMandius