Joomla 1.0.x, Joostina.
Итак, проблема в AkoForms давно известна - спам в форме из-за отсутствия каптчи.
Используем компонент форм представленный в
этой ветке.
По умолчанию предполагается, что kcaptcha присутствует в системе (верно для Joostina). Если нет, то качаем
отсюда.
Модификации предлагается файл /components/com_akoforms/akoforms.php
Перед 106 строкой
# AkoForms Template Engine End
вставляем строки
$captcha="
<?php session_start(); ?>
<img src=\"$mosConfig_live_site/includes/kcaptcha/index.php?session_name()=session_id()\"
alt=\"Включите показ картинок в браузере\" />
<br />
<label for=\"contact_captcha\">
Введите код с картинки:
</label>
<br />
<input type=\"text\" name=\"captcha\" id=\"contact_captcha\" value=\"\" size=\"30\" maxlength=\"10\" />";
бывшую 107 строку
$file_akf_layoutend = str_replace( "###AFTSENDBUTTON###" , "<input type='button' name='send' value='".$AKFLANG->AKF_BUTTONSEND."' class='button' onclick='akovalidate()' />" , $file_akf_layoutend );
заменяем на
$file_akf_layoutend = str_replace( "###AFTSENDBUTTON###" , "$captcha<br><br><input type='button' name='send' value='".$AKFLANG->AKF_BUTTONSEND."' class='button' onclick='akovalidate()' />" , $file_akf_layoutend );
перед бывшей 119 строкой
# Load form from database
вставляем
session_start();
if(!isset($_SESSION['captcha_keystring']) ||
$_SESSION['captcha_keystring']!==$_POST['captcha']){
unset($_SESSION['captcha_keystring']);
mosErrorAlert('Вы должны корректно ввести код с картинки.');
}
unset($_SESSION['captcha_keystring']);
Проверяем. Все вышеприведенное верно только лишь в том случае если вы выводите форму через компонент (ссылка вида http://.ru/component/option,com_akoforms/func,showform/formid,1/Itemid,38/), а не через мамбот ({akoforms=1}), так как в мамботе идея своя обработка кода. Перенести данный код на мамбот можно своими силами аналогично.
Прилагаю правленный файл akoforms.php
[вложение удалено Администратором]