как победить?
Как понимаю — надо править компонент registration на проверку заполненности дополнительных полей.
Если кто делал подобное — киньте пример. Тут на форуме искал, не нашел.
// Проверяем email if(!$item['email']) { cmsCore::addSessionMessage($_LANG['ERR_EMAIL'], 'error'); $errors = true; }
В ленте активности то и дело "{no_image} регистрируется".
Залезаю в админку — безымянных юзеров нет. Смотрю базу — безымянных нет. Смотрю action_log — нет записей о регистрации!
Нумерация пользователей в cms_users не сбита! То есть никто не регистрировался, автоинкремент не срабатывал.
Мистика! Летучие голландцы атакуют.
// получаем данные конструктора форм $item['formsdata'] = ''; foreach($users_model->config['privforms'] as $form_id){ $form_input = cmsForm::getFieldsInputValues($form_id); $item['formsdata'] .= $inDB->escape_string(cmsCore::arrayToYaml($form_input['values'])); // Проверяем значения формы foreach ($form_input['errors'] as $field_error) { if($field_error){ cmsCore::addSessionMessage($field_error, 'error'); $errors = true; } } } } }
instantcms.ru/blogs/moi-put/hak-plagin-vybora-avtara-pri-registraci-vybor-goroda.html
Защита у меня работает.
Правда только от ботов, но от людей просто заменил допуск, сделал тот же Димитриус.
konst, Это посмотрите,
Огромный сенкс!!! Сделал по вашему примеру, но вместо "Пол" использовать вопрос по направленности сайта.
Посмотрим утром, что скажут боты… 😊
Похоже кто то меня не любит 😊
Тоже ботов стало куча, при том даже на тестовых сайтах где посещалка была 10 уников в неделю, там теперь до 50 в день и всё боты, постят всякю лабуду в блоги, комменты, объявления.Похоже кто то меня не любит
Версии 1.10.6, 1.10.7
Похоже кто то меня не любит
Попробуйте как писал раньше....
Одно поле сделайте выпадающем, НО: Первый пункт 0 а два пусть выбирают.
Отправил в личку пример.
Ботов поуменьшилось, но все равно пробиваются.
Видать "забивают" данные рандомно.
Пытаюсь проверить их, но не получается.
В cms поля получаются так:
// получаем данные конструктора форм $item['formsdata'] = ''; foreach($users_model->config['privforms'] as $form_id){ $form_input = cmsForm::getFieldsInputValues($form_id); $item['formsdata'] .= $inDB->escape_string(cmsCore::arrayToYaml($form_input['values'])); // Проверяем значения формы foreach ($form_input['errors'] as $field_error) { if($field_error){ cmsCore::addSessionMessage($field_error, 'error'); $errors = true; } } } } }
$rcmodel = $inCore->request('field[25]', 'str',''); if($rcmodel!='7'){ cmsCore::addSessionMessage('Ошибка', 'error'); $errors = true;}
Вопрос: как получить значение поля из "данных конструктора форм", если я знаю его имя (name="field[24]")?
Я сделал так, что работает только 1 ответ из 4 в выпадающем списке Для человека — выбор не представляет проблем.
Ботов поуменьшилось, но все равно пробиваются.
Видать "забивают" данные рандомно.
можно в лс что именно сделали?
можно в лс что именно сделали?
Тоже что и тут: instantcms.ru/blogs/moi-put/hak-plagin-vybora-avtara-pri-registraci-vybor-goroda.html
только надо выбрать из 4 один ответ, который является правильным к тематике сайта.
Вопрос: как получить значение поля из "данных конструктора форм", если я знаю его имя (name="field[24]") все еще остается актуальным.
Сделал через проверку наличия подстроки в $item['formsdata']