Как я могу проверить, что ввод текста НЕ совпадает между 2 полями в форме Shopify «Создать учетную запись»? - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь бороться со спам-ботами, которые заполняют мою форму Shopify "Create Account".

Поддельные учетные записи пользователей всегда используют одно и то же произвольно написанное случайное «Имя» и «Фамилия», поэтому, если бы я мог заставить представление не выполняться с условием, что «Имя» и «Фамилия» не могут совпадать Я думаю, это может решить мою проблему.

Какой самый простой способ реализовать это? Любой совет будет оценен.

У меня есть рабочие знания для изменения кода в Shopify, но я не профессионал.

Я уже пробовал блокировку Geo-IP, но, похоже, бот получает доступ через мой (США), так что это не сработало. Я также попытался добавить обязательный флажок, чтобы проверить чтение наших терминов перед отправкой, но безрезультатно, бот ставит галочку, и они проходят.

Я включил страницу наших клиентов / register.liquid ниже.

{% layout settings.customer_layout %}
<div class="bump">
<section id="blacktop">
<div id="template">
  <div id="customer">

      <!-- Create Customer -->
      <div id="create-customer" data-aos="flip-right">
           <h1>Create an Account</h1>
        <div class="template_header">
        </div>

        {% form 'create_customer' %}
          {{ form.errors | default_errors }}


        <input id="fname" type="text" name="confirm" value="" />


          <div class="clearfix large_form">
            <label for="first_name" class="login">First Name</label>
            <input type="text" value="" name="customer[first_name]" id="first_name" class="large fnamer" size="30" />
          </div>

          <div class="clearfix large_form">
            <label for="last_name" id="lname-reg" class="login">Last Name</label>
            <input type="text" value="" name="customer[last_name]" id="last_name" class="large" size="30" />
          </div>

          <div class="clearfix large_form">
            <label for="email" class="login">Email Address</label>
            <input type="email" value="" name="customer[email]" id="email" class="large" size="30" />
          </div>

          <div class="clearfix large_form">
            <label for="password" class="login">Password</label>
            <input type="password" value="" name="customer[password]" id="password" class="large password" size="30" />
          </div>



<input type="hidden" id="customer_tags" name="customer[tags]" value="Illuminati"/>

          <div class="action_bottom">

            <input id="create-btn" data-callback="onSubmit" class="btn" type="submit"  value="Create">

            <span class="note"><a href="/account/login">or Login</a></span>
          </div>

        <input type="hidden" name="return_to" value="/pages/products/#welcome"/>

        {% endform %}
      </div><!-- /#create-customer -->
  </div>
  </div>




</section>


  <script>

  var checker = document.getElementById('fname');
  var sendbtn = document.getElementById('create-btn');
  checker.onchange = function() {

    sendbtn.disabled = !this.checked;
  };

  </script>

  <style type="text/css">
input[name="confirm"]{
    display: none;
}
</style>
</div>

Надеюсь, это сработает. Я видел много постов людей, испытывающих одинаковые представления ботов с одинаковыми именами. Новые «покупатели» никогда не делают с нашим магазином ничего другого, как, например, пытаются совершить покупку, но это проблема, главным образом, из-за количества поддельных учетных записей, плюс они автоматически импортируются в HubSpot через интеграцию как «лидеры продаж».

1 Ответ

0 голосов
/ 06 апреля 2019

Вы можете перехватить отправку в форме с помощью Javascript. Так что, если пользователь нажимает кнопку «Отправить» или бот нажимает кнопку «Отправить», он запускает проверку идиота. Вы можете проверить поля имени и решить, являются ли они законными или нет. Если нет, ничего не делай. Если они кажутся законными, пусть отправка произойдет и продолжится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...