Р

Рич

+2
Репутация
0
Рейтинг
#1 Спам в форму обратной связи. 16 января 2017 в 10:49


Я предполагаю, что ошибка гдето тут.

Рич
посмотрите что прилетает у вас в $form. Запишите
  1. var_dump($form['check']);
перед
  1. if ($form['check'] != 'secretcode') exit('Spam detected');

Loadырь


Прилетает NULL
Получается, не передается значение?( Значит нужно молотить скрипт в кнопке.
#2 Спам в форму обратной связи. 16 января 2017 в 10:17


Так попробуйте
И проверьте, нет ли ошибок яваскриптов на странице.

Loadырь

Ошибок на странице нет.
Если я вставляю в value передаваемое значение, по идее, оно же должно уже по умолчанию передваваться? Это чтобы потестить передачу данных.
  1. <input id="check" name="check" type="hidden" value="secretcode" />
Скрипт не срабатывает даже в этом случае. Я предполагаю, что ошибка гдето тут.
  1. if ($form['check'] != 'secretcode') exit('Spam detected');
#3 Спам в форму обратной связи. 16 января 2017 в 04:06
Короче, галочка не спасает. Нужно искать алтернативу.

Возвращаясь к скрипту на кнопке: Может, я не знаю какой-то особенности формирования полей в инстанте 1.10.1?

Есть скрытая форма
  1. <input id="check" name="check" type="hidden" value="" />
Есть скрипт в кнопке
  1. <div class="col-lg-5 col-lg-offset-3 text-right">
  2. <input type="submit" value="Отправить" class="btn btn-danger" onclick="document.getElementById('check').value = 'secretcode';" />
  3. </div>
И естественно в обработчике формы есть проверка валидности формы
  1. if ($form['check'] != 'secretcode') exit('Spam detected');
Не могу понять, на каком этапе не срабатывает. Скорее всего, не срабатывает проверка кода. Вписывал value вручную, результат был тот же. Может неправильно указываю $form?

Ребята, SOS! Спам задолбал уже(((((((
#4 Спам в форму обратной связи. 13 января 2017 в 14:56


Не помогает((

Рич
А само поле c id = checkspam присутствует в форме?

Loadырь

Да, присутствует.
#5 Спам в форму обратной связи. 13 января 2017 в 00:21


может

if ($form['checkspam']!=='332122') {exit('!Spam detected');}

Рич

Нил™

Не помогает(( поставил пока галочку как посоветовал Dost. Посмотрим, что будет делать спам) Тему пока не закрываю, может кто еще что посоветует)
#6 Спам в форму обратной связи. 12 января 2017 в 23:37
Нашел, где формируется эта кнопка. Но столкнулся с другой проблемой. Оформил кнопку таким образом.
  1. <input onclick="document.getElementById('checkspam').value='332122';" type="submit" value="Отправить" class="btn btn-danger"/>
В фронтенде поставил проверку
  1. if ($form['checkspam']!='332122') {exit('!Spam detected');}
По идее, должно при клике присваиваться значение 332122 и проверяться при формировании письма для отправки. Но он все время отвечает !Spam detected.

Где-то в синтаксисе ошибся или как?
#7 Спам в форму обратной связи. 12 января 2017 в 21:52


Какие то лохи платят же

Нил™
На всякий случай, отмечу. И я тоже, когда то давным давно, сразу после создания первого сайта, заказывал "прогон по каталогам и доскам объявлений", и покупал посетителей на сайт за сущие копейки. Короче не понимал я ничего, лох был тоже.

Нил™

Раньше это было более-менее оправдано. Я такими прогонами за 2-3 месяца нулевой сайт поднимал ТИЦ до 20-30.

Мне интересно, почему не идет спам в комменты и формы регистрации, а в форму обратной связи. При чем, именно в эту. Хотя на сайте (даже на этой же странице есть еще и другая форма, в нее спам идти перестал после включения капчи) И ведь спам не информативный. Не способный побудить к переходу, порой даже без ссылок. Шлак одним словом.
#8 Спам в форму обратной связи. 12 января 2017 в 21:18


Вот посмотрите как реализовано, может поможет.

Dost

Спасибо за информацию. Вот только я не могу найти кнопку "Отправить" для формы обратной связи. Кнопки указанные в этой статье я нахожу, но это не они. Компонент "Конструктор форм". Сама форма выводится таким образом {ФОРМА=Связь} через модуль. Где может быть код самой кнопки?
#1 Спам в форму обратной связи. 12 января 2017 в 12:48
Здравствуйте! Подскажите пожалуйста! Каким образом можно оградить себя от спамботов, обходящих капчу? Версия движка 1.10.1

Предыстория такая: чтобы потестить вырастит ли конверсия на сайте, отключили капчу из форм обратной связи. Разумеется через определенное время начал сыпаться спам. Капчу вернули на место, но это не помогло.

Кто знает какие варианты решения проблемы? подскажите плиз!

Есть задумка повесить скрипт на кнопку "отправить". Кто может подсказать, в каком файле она генерируется?
#10 Добавить Radio в оформление заказа InstantShop 2.0 26 марта 2016 в 00:18

Frontend передает model, model пишет в базу

Gumoff
Продублировал все customer_name (кроме проверки на заполнение полей (думаю, не должно быть критичным)). И переименовал естественно в cityName. Проблема возникла с блоком
  1. $sql = "INSERT INTO cms_shop_orders (secret_key, date_created, date_payment, date_closed,
  2. customer_name, customer_org, customer_phone, customer_email,
  3. customer_address, customer_comment, customer_inn, items, d_type, d_price,
  4. giftcode, status, summ, user_id, city)
  5. VALUES ('{$order['secret_key']}', NOW(), NULL, NULL,
  6. '{$order['customer_name']}', '{$order['customer_org']}', '{$order['customer_phone']}', '{$order['customer_email']}',
  7. '{$order['customer_address']}', '{$order['customer_comment']}', '{$order['customer_inn']}', '{$order['items']}', '{$order['d_type']}', '{$order['d_price']}',
  8. '{$order['giftcode']}', '{$order['status']}', '{$order['summ']}', '{$order['user_id']}', '{$order['city']}')";
когда вписываю переменную cityName в INSET и VALUES, при оформлении заказа когда уже отправляешь полностью оформленный заказ (то есть, идет запись в БД) заказ не оформляется, а кидает на 404 ошибку. Что именно я мог не учесть?
#11 Добавить Radio в оформление заказа InstantShop 2.0 24 марта 2016 в 22:59


Ну тогда подгляди как сделано на примере выбора способа оплаты

Gumoff

Смотрел. Не разобрался) По логике, он же должен передать значение value в базу для записи. Но где это сделать (в каком файле) я не знаю.
#12 Добавить Radio в оформление заказа InstantShop 2.0 24 марта 2016 в 20:07

Привет. а почему радио а не селект — городов немного?

Gumoff

Единичный выбор один из двух. Чтобы два города рядом стояло и надо было один из них указзать.
#1 Добавить Radio в оформление заказа InstantShop 2.0 24 марта 2016 в 02:42
Всем привет. Возникла задача добавить кнопку radio при оформлении заказа. Прописал такой код:

  1.  
  2. <input type='radio' name='cityName' value='val1'><span>1</span>
  3. <input type='radio' name='cityName' value='val2'><span>2</span>
  4.  
Есть код для обработки радио кнопки
  1.  
  2. <?php
  3. if (isset($_POST['cityName']))
  4. {
  5. echo '<p>';
  6. if ($_POST['cityName']==="1") echo "<b>Значение 1</b>";
  7. if ($_POST['cityName']==="1") echo "<b>Значение 2</b>";
  8. echo '</p>';
  9. }
  10. else echo '<p>не указан</p>';
  11. ?>
  12.  
Пытаюсь ставить его в файл order.tpl.php

Подозреваю, что нужно каким-то образом сначала запомнить это значение, а потом отправлять в админку.

два вопроса:

1. Как вывести значение кнопки в админку? (желательно с примерами)
2. Как сделать чтобы выбор радиокнопки был обязательным (т.е. проверялся при нажатии "перейти к следующему шагу")

Заранее спасибо за ответы.
#14 [ЕСТЬ РЕШЕНИЕ] INSTANTSHOP 2.2 Блокировка доступа группе пользователей 19 февраля 2016 в 22:43


Собственно, надо скрыть пункт "Компоненты" и настройку InstantShop чтобы обезопаситься от "дурака" на случай изменения настроек и удаления компонента.

Рич

Все, нашел. /admin/template.php Еще раз огромное спасибо)
#15 [ЕСТЬ РЕШЕНИЕ] INSTANTSHOP 2.2 Блокировка доступа группе пользователей 19 февраля 2016 в 22:22
Собственно, надо скрыть пункт "Компоненты" и настройку InstantShop чтобы обезопаситься от "дурака" на случай изменения настроек и удаления компонента.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.