• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела wpt лично.

Помощь Проверка на стоп-слова всех почтовых форм БУС при отправке через input и textarea

KPACHODAP

DELETED
Регистрация
21 Дек 2009
Сообщения
683
Реакции
312
Доброго дня друзья! Пытаюсь в бус сделать проверку от бота приметивную на ввод в теле формы "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:

---------

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>Вопрос&nbsp;<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>Ваше имя&nbsp;<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>Телефон&nbsp;<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"] профи кто шарит?
 
Последнее редактирование:
Назад
Сверху