KPACHODAP
DELETED
- Регистрация
- 21 Дек 2009
- Сообщения
- 683
- Реакции
- 312
- Автор темы
- #1
Доброго дня друзья! Пытаюсь в бус сделать проверку от бота приметивную на ввод в теле формы "form_textarea_4" символов "http"! Что не так делаю почему не спрабатывает немогу понять, и если ввести в "form_textarea_4" к примеру "Привет как дела http, проверка https не прошла" все приходит и пропускает и как спам не считает!
--
Ищу решение!!!
Помогите плиз сделать так, чтобы обсолютно везде на всех формах, срабатывала проверка на отмену отправки письма по словам из массива при вводе в поля input или textarea, пример array("https", "http", "porno", ".com")
ведь я так понимаю это подрубается обсолютно ко всем формам (\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", "OnEndBufferWebFormAntiSpam")
За ранее всем благодарен!!!
----
проверку на ввод символов в полях
//<textarea data-sid="QUESTION" required="" name="form_textarea_4" cols="40" rows="5" aria-required="true"></textarea>
//<input type="text" class="inputtext" data-sid="CLIENT_NAME" required="" name="form_text_1" value="" aria-required="true">
Ниже пример кода файла bitrix/php_interface/init.php:
---------
-------
Код формы
может воожще надо искать в $arFields["BODY"] профи кто шарит?
--
Ищу решение!!!
Помогите плиз сделать так, чтобы обсолютно везде на всех формах, срабатывала проверка на отмену отправки письма по словам из массива при вводе в поля input или textarea, пример array("https", "http", "porno", ".com")
ведь я так понимаю это подрубается обсолютно ко всем формам (\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", "OnEndBufferWebFormAntiSpam")
За ранее всем благодарен!!!
----
проверку на ввод символов в полях
//<textarea data-sid="QUESTION" required="" name="form_textarea_4" cols="40" rows="5" aria-required="true"></textarea>
//<input type="text" class="inputtext" data-sid="CLIENT_NAME" required="" name="form_text_1" value="" aria-required="true">
Ниже пример кода файла bitrix/php_interface/init.php:
---------
PHP:
<?
\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", "OnEndBufferWebFormAntiSpam");
function OnEndBufferWebFormAntiSpam(&$content)
{
// $xStyle = '.xname{display:block;height:.1px;margin:0!important;overflow:hidden;padding:0!important;width:.1px;border:0;opacity:.01;}';
// $content = str_ireplace('', $xStyle.'', $content);
$findField = addEventHandler('form', 'onBeforeResultAdd', 'onBeforeResultAddWebFormAntiSpam');
function onBeforeResultAddWebFormAntiSpam($WEB_FORM_ID, &$arFields, &$arrVALUES){
global $APPLICATION;
//<textarea data-sid="QUESTION" required="" name="form_textarea_4" cols="40" rows="5" aria-required="true"></textarea>
//если содержит http
if (strpos($arFields["QUESTION"], 'http') !== false) {
global $APPLICATION;
$APPLICATION->throwException("К сожалению, Ваш вопрос не может быть отправлен.");
return false;
}
}
}
-------
Код формы
HTML:
<div class="form inline SIMPLE_FORM_1">
<!--noindex-->
<div class="form_head">
<h4>Задать вопрос</h4>
</div>
<form name="SIMPLE_FORM_1" action="/form/" method="POST" enctype="multipart/form-data" novalidate="novalidate"><input type="hidden" name="bxajaxid" id="bxajaxid_6bcf4a53abe791b8fe92e4ebfd6b9eca_8BACKi" value="6bcf4a53abe791b8fe92e4ebfd6b9eca"><input type="hidden" name="AJAX_CALL" value="Y"><script>
function _processform_8BACKi(){
if (BX('bxajaxid_6bcf4a53abe791b8fe92e4ebfd6b9eca_8BACKi'))
{
var obForm = BX('bxajaxid_6bcf4a53abe791b8fe92e4ebfd6b9eca_8BACKi').form;
BX.bind(obForm, 'submit', function() {BX.ajax.submitComponentForm(this, 'comp_6bcf4a53abe791b8fe92e4ebfd6b9eca', true)});
}
BX.removeCustomEvent('onAjaxSuccess', _processform_8BACKi);
}
if (BX('bxajaxid_6bcf4a53abe791b8fe92e4ebfd6b9eca_8BACKi'))
_processform_8BACKi();
else
BX.addCustomEvent('onAjaxSuccess', _processform_8BACKi);
</script><input type="hidden" name="sessid" id="sessid" value="b22de45738edadc98308368bb4bafb46"><input type="hidden" name="WEB_FORM_ID" value="1"> <input type="hidden" name="sessid" id="sessid_1" value="b22de45738edadc98308368bb4bafb46"> <div class="form_body">
<div class="row">
<div class="col-md-7">
<div class="form-control">
<label><span>Вопрос <span class="star">*</span></span></label>
<textarea data-sid="QUESTION" required="" name="form_textarea_4" cols="40" rows="5" aria-required="true"></textarea> </div>
<input type="hidden" data-sid="PRODUCT_NAME" name="form_hidden_5" value=""> </div>
<div class="col-md-5">
<div class="form-control">
<label><span>Ваше имя <span class="star">*</span></span></label>
<input type="text" class="inputtext" data-sid="CLIENT_NAME" required="" name="form_text_1" value="" aria-required="true"> </div>
<div class="form-control">
<label><span>Телефон <span class="star">*</span></span></label>
<input type="tel" class="phone" data-sid="PHONE" required="" name="form_text_2" value="" aria-required="true"> </div>
<div class="form-control">
<label><span>E-mail</span></label>
<input type="email" placeholder="mail@domen.com" class="inputtext" data-sid="EMAIL" name="form_email_3" value=""> </div>
</div>
</div>
<div class="clearboth"></div>
<textarea name="nspm" style="display:none;"></textarea>
<div class="clearboth"></div>
</div>
<div class="form_footer">
<input type="hidden" name="aspro_max_form_validate">
<div class="licence_block filter onoff label_block">
<input type="checkbox" id="licenses_inline" name="licenses_inline" required="" value="Y" aria-required="true">
<label for="licenses_inline">
Я согласен на <a href="/include/licenses_detail.php" target="_blank">обработку персональных данных</a> </label>
</div>
<button type="submit" class="btn btn-default" value="submit"><span>Отправить</span></button>
<input type="hidden" class="btn btn-default" value="Отправить" name="web_form_submit">
<button type="reset" class="btn btn-default white" value="reset" name="web_form_reset"><span>Сбросить</span></button>
<script>
$(document).ready(function(){
$('form[name="SIMPLE_FORM_1"]').validate({
highlight: function( element ){
$(element).parent().addClass('error');
},
unhighlight: function( element ){
$(element).parent().removeClass('error');
},
submitHandler: function( form ){
if( $('form[name="SIMPLE_FORM_1"]').valid() ){
setTimeout(function() {
$(form).find('button[type="submit"]').attr("disabled", "disabled");
}, 500);
var eventdata = {type: 'form_submit', form: form, form_name: 'SIMPLE_FORM_1'};
BX.onCustomEvent('onSubmitForm', [eventdata]);
}
},
errorPlacement: function( error, element ){
error.insertBefore(element);
},
messages:{
licenses_inline: {
required : BX.message('JS_REQUIRED_LICENSES')
}
}
});
if(arMaxOptions['THEME']['PHONE_MASK'].length){
var base_mask = arMaxOptions['THEME']['PHONE_MASK'].replace( /(\d)/g, '_' );
$('form[name=SIMPLE_FORM_1] input.phone, form[name=SIMPLE_FORM_1] input[data-sid=PHONE]').inputmask('mask', {'mask': arMaxOptions['THEME']['PHONE_MASK'] });
$('form[name=SIMPLE_FORM_1] input.phone, form[name=SIMPLE_FORM_1] input[data-sid=PHONE]').blur(function(){
if( $(this).val() == base_mask || $(this).val() == '' ){
if( $(this).hasClass('required') ){
$(this).parent().find('label.error').html(BX.message('JS_REQUIRED'));
}
}
});
}
});
</script>
</div>
</form> <!--/noindex-->
</div>
может воожще надо искать в $arFields["BODY"] профи кто шарит?
Последнее редактирование: