Как остановить спам регистрацию?

Автор Aleksey19881988, 06 мая 2019, 12:41:31

« назад - далее »

Aleksey19881988

#15
Цитата: Aleksey19881988 от 07 мая 2019, 14:35:27
Цитата: Виталий от 07 мая 2019, 13:09:04
Создаете файлы:

Не пойму только как эти фалы включаются в работу?
И самое интересное, это где заменять поля в файле    authentication.tpl  ?
Что будет вот такой короткий код вместо того что было???

<div class="required form-group">
<label for="firstname">{l s='First name'} <sup>*</sup></label>
<input type="text" class="is_required validate form-control" data-validate="isCustomerName" id="firstname" name="firstname" value="{if isset($smarty.post.firstname)}{$smarty.post.firstname}{/if}" />
</div>
<div class="required form-group">
<label for="lastname">{l s='Last name'} <sup>*</sup></label>
<input type="text" class="is_required validate form-control" data-validate="isCustomerName" id="lastname" name="lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname}{/if}" />
</div>
....
<div class="required form-group">
<label for="customer_firstname">{l s='First name'} <sup>*</sup></label>
<input onkeyup="$('#firstname').val(this.value);" type="text" class="is_required validate form-control" data-validate="isCustomerName" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.customer_firstname)}{$smarty.post.customer_firstname}{/if}" />
</div>
<div class="required form-group">
<label for="customer_lastname">{l s='Last name'} <sup>*</sup></label>
<input onkeyup="$('#lastname').val(this.value);" type="text" class="is_required validate form-control" data-validate="isCustomerName" id="customer_lastname" name="customer_lastname" value="{if isset($smarty.post.customer_lastname)}{$smarty.post.customer_lastname}{/if}" />
</div>

Явно нет потому что получилась фигня, а если это только кусок кода то в какие строчки его вставлять?

Aleksey19881988

я так понимаю отличие только в этих строчках data-validate="isCustomerName", если да то я все сделал, результат такой же как и был, код прилагаю

Adik

Удалите вообще код
data-validate="isCustomerName"
в authentication.tpl.
Без него ошибки будет показывать?

Aleksey19881988

#18
Цитата: Adik от 07 мая 2019, 15:55:10
Удалите вообще код
data-validate="isCustomerName"
в authentication.tpl.
Без него ошибки будет показывать?
не знаю что то уже пробовать боюсь, регистрации так же продолжаются на стандартном коде без переделок

PrestaMan

Цитата: Aleksey19881988 от 08 мая 2019, 09:50:03
не знаю что то уже пробовать боюсь, регистрации так же продолжаются на стандартном коде без переделок
Написали же что делать.
Цитата: Виталий от 07 мая 2019, 13:09:04
1. Создаете файлы:
/override/classes/Customer.php
/override/classes/Validate.php
2. Изменяете шаблон формы регистрации
/themes/тема/authentication.tpl
3. Если нужна проверка при заполнении, меняете метод isName на isCustomerName в javascript функции проверки полей формы регистрации.
4. Удаляете файл /cache/class_index.php
Очищаете кеш - https://prestashop-forum.ru/index.php/topic,1286.0.html
метод проверенный, сам так не раз делал, спам регистрации отсекает на 100%
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

Aleksey19881988

Цитата: PrestaMan от 08 мая 2019, 12:33:46
Цитата: Aleksey19881988 от 08 мая 2019, 09:50:03
не знаю что то уже пробовать боюсь, регистрации так же продолжаются на стандартном коде без переделок
Написали же что делать.
Цитата: Виталий от 07 мая 2019, 13:09:04
1. Создаете файлы:
/override/classes/Customer.php
/override/classes/Validate.php
2. Изменяете шаблон формы регистрации
/themes/тема/authentication.tpl
3. Если нужна проверка при заполнении, меняете метод isName на isCustomerName в javascript функции проверки полей формы регистрации.
4. Удаляете файл /cache/class_index.php
Очищаете кеш - https://prestashop-forum.ru/index.php/topic,1286.0.html
метод проверенный, сам так не раз делал, спам регистрации отсекает на 100%
Может быть и так, но что то не так значит, можете подробнее разьяснить по поводу строчек в файле authentication, может у меня ошибка из-за капчи гугла?

zapalm

Оказывается, что есть еще валидация на клиенте ;D Ваша каптча не причем! Эти сообщения - явно стандартная клиентская валидация.
Посмотрел еще раз исправления на GitHub. Оказывается, в итоге, ребятам пришлось немало исправить. Вот все изменения релиза 1.6.1.24 по данной ошибке: https://github.com/PrestaShop/PrestaShop/commit/d2d1548c70c6a0bd18669b716ea14e27d52c2e0e (зелёные строки - добавленный код; красные строки - удалённый код). Названия измененных файлов - указаны. Комментарии копирайтов не нужно менять - они не влияют и не дают полезной информации. Теперь должно быть понятно, что менять. Файл tests/Unit/classes/ValidateCoreTest.php не нужен и его не будет у вас (не включают в сборку).
Переопределять классы (размещать их в /override/classes) не нужно, как советовали, так как это не кастомизация, а исправление бага пуля в пулю с релизом. Поэтому, если делали, нужно удалить эти новые файлы и также удалить /cache/class_index.php.
Перед проверкой нужно удалить кэш через "Инструменты -> Производительность" в админке, чтобы наверняка сбросить кэш JavaScript (вообще, при проверках, нужно отключать кэширование) и нажать клавишу F5 на странице регистрации, чтобы сбросить уже кэш браузера! И только затем проверять.
Когда все сделаете, но при проверке клиентская валидация выдаст, что "имя не верно", то давайте ссылку на сайт.
Обновил свой ответ в начале топика, чтобы новым читателям не пришлось листать до конца.
И, совет на будущее: все изменения "под себя" должны делаться, используя систему переопределений и тогда будете обновлять престу сами нажимая лишь кнопки! ;) Что это и, как проверять работу программиста? - это тема отдельного топика.


Aleksey19881988

Цитата: zapalm от 09 мая 2019, 08:49:49
Оказывается, ...... - это тема отдельного топика.
проделал указанное по ссылке, получил ошибку при  удалении спамерных учеток

Aleksey19881988


Aleksey19881988

Я уже устал(( Кто готов сделать за оплату, вроде все расписано и просто но нифига не получается, на всякий случай мои файлы измененные

Aleksey19881988


Aleksey19881988

#26
Пишу для тех кому это может пригодится, решение данной проблемы слишком простое, нужно добавить точку в файл validate.php

<?php

class Validate extends ValidateCore
{
   public static function
isCustomerName($name)
   {
       if (
preg_match('/www|http/ui',$name)) {
           return
false;
       }

          return
preg_match('/^[^0-9!\[\]<>.,;?=+()@#"°{}_$%:\/\\\*\^]*$/u', $name);
   }
}