Автор Тема: Блокировка e-mail в службе поддержки  (Прочитано 105 раз)

19 Март 2018, 14:59:55
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день! Кто-нибудь знает как сделать так, чтобы в службу поддержки на сайте ограничить доступ для e-mail-ов с одного и того же домена? То есть, чтобы нельзя было написать письмо в службу поддержки, если е-майл имеет определенный домен.
19 Март 2018, 15:23:37
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1112
  • Репутация: +5/-1
  • Сообщество PrestaShop
    • Просмотр профиля
iptables заблокировать домен можно.
19 Март 2018, 15:42:41
Ответ #2
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
19 Март 2018, 16:10:27
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 14861
  • Репутация: +14588/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Блокировку по домену настраивают в управлении хостингом.
19 Март 2018, 16:59:33
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 1112
  • Репутация: +5/-1
  • Сообщество PrestaShop
    • Просмотр профиля
19 Март 2018, 18:00:27
Ответ #5
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Блокировку по домену настраивают в управлении хостингом.
В php или tpl файле нельзя настроить так, чтобы в модуле "Свяжитесь с нами" пользователь не мог отправить сообщение, если у него домен е-майла например example.com?
В приложении картинка, где стрелкой показано где вводится е-майл.
19 Март 2018, 19:21:58
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 3298
  • Репутация: +77/-6
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере Contact.php можно добавить проверку введенного email
if($email  == example.com) return;
20 Март 2018, 10:07:53
Ответ #7
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере Contact.php можно добавить проверку введенного email
if($email  == example.com) return;
Добрый день! Не могу найти данный контроллер Contact.php, где он находится?
Вроде бы нашел в папке /classes
20 Март 2018, 10:23:15
Ответ #8
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В контроллере Contact.php можно добавить проверку введенного email
if($email  == example.com) return;
Нашел ContactController.php, в php не силен, поэтому пока не могу разобраться куда поставить эту строчку.
20 Март 2018, 11:00:06
Ответ #9
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22548
  • Репутация: +17130/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
        $this->errors[] = Tools::displayError('Invalid email address.');
}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
20 Март 2018, 13:21:59
Ответ #10
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
        $this->errors[] = Tools::displayError('Invalid email address.');
}
if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) || ($email  == example.com) {
                $this->errors[] = Tools::displayError('Invalid email address.');
            }
Пробую так, не получается.

Может в файле Validate.php добавить как-то?
public static function isEmail($email)
    {
        return !empty($email) && preg_match(Tools::cleanNonUnicodeSupport('/^[a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]+[.a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]*@[a-z\p{L}0-9]+(?:[.]?[_a-z\p{L}0-9-])*\.[a-z\p{L}0-9]+$/ui'), $email);
    }
20 Март 2018, 18:46:19
Ответ #11
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22548
  • Репутация: +17130/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
$domain_name_block = 'mydomain.com';
$domain_name_email = substr(strrchr($from, "@"), 1);
if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from) || $domain_name_block == $domain_name_email ) {
        $this->errors[] = Tools::displayError('Invalid email address.');
}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
20 Март 2018, 19:37:18
Ответ #12
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$domain_name_block = 'mydomain.com';
$domain_name_email = substr(strrchr($from, "@"), 1);
if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from) || $domain_name_block == $domain_name_email ) {
        $this->errors[] = Tools::displayError('Invalid email address.');
}
Не работает!  :(
20 Март 2018, 22:10:24
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 3298
  • Репутация: +77/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Версия prestashop какая установлена?
21 Март 2018, 09:55:59
Ответ #14
  • Новичок
  • *
  • Сообщений: 36
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля