drmodjo Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 Привет всем. Есть такая нужда, чтобы номер телефона при регистрации проверялся по базе (как email), дабы не было дубликатов. Подскажите пожалуйста в каких файлах и что добавить. Заранее благодарю. (OpenCart 2.3.0.2, стандартный шаблон) Надіслати Поділитися на інших сайтах More sharing options...
OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 15 минут назад, drmodjo сказал: Подскажите пожалуйста в каких файлах и что добавить. Файл catalog/controller/account/register.php В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Затем в файле catalog/model/account/customer.php Ищем функцию getTotalCustomersByEmail() и по аналогии делаем для телефона. Это если не заморачиватся с форматом телефона. При поиске и записи телефона, обязательно записывайте его в одном формате. Так как может не сработать Ваша проверка Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 4 часа назад, OCappLab сказал: Затем в файле catalog/model/account/customer.php В этом файле очень много кода связанного с email. Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 2 минуты назад, drmodjo сказал: В этом файле очень много кода связанного с email. Внимательно перечитайте мое сообщение выше 4 часа назад, OCappLab сказал: Затем в файле catalog/model/account/customer.php Ищем функцию getTotalCustomersByEmail() Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 минут назад, OCappLab сказал: Ищем функцию getTotalCustomersByEmail() Если использовать только эту часть кода, то опенкарт ругается. Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 4 минуты назад, drmodjo сказал: Если использовать только эту часть кода, то опенкарт ругается. Вы по аналогии сделайте. Тоесть создайте функцию, например, getTotalCustomersByPhone И проверку делайте уже использую эту функцию. А в контроллере, ее уже использовать по-аналогии с 4 часа назад, OCappLab сказал: В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 (змінено) 1 час назад, OCappLab сказал: Я очень извиняюсь. Что-то никак не получается. Могу я вам прислать эти два файла (register.php и customer.php), сделаете правку, чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? Буду вам очень благодарен. Замучали некоторые пользователи, а это их ограничит. Змінено 21 березня 2019 користувачем drmodjo Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 1 час назад, drmodjo сказал: чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? У вас в файлах есть шаблон. Копируете: 1 час назад, OCappLab сказал: В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Эти строчки, получится, примерно: if (utf8_strlen($this->request->post['telephone']) > 96) { $this->error['phone'] = $this->language->get('error_phone'); //тут нужно не забыть языковую переменную в файл добавить } if ($this->model_account_customer->getTotalCustomersByPhone($this->request->post['telephone'])) { $this->error['warning'] = $this->language->get('error_exists'); } И в модели так же само, по аналогии создаем функцию: public function getTotalCustomersByPhone($phone) { $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE LOWER(telephone) = '" . $this->db->escape(utf8_strtolower($phone)) . "'"); return $query->row['total']; } В идеале, конечно нужно чтоб телефоны были одного формата, чтоб проверка успешная была. А то кто-то напишет 555-55-55, а кто-то 5555555 Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 3 часа назад, OCappLab сказал: Благодарю. Получилось. Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 часов назад, OCappLab сказал: 1 час назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Соответственно выдает такую ошибку. (PHP Notice: Indirect modification of overloaded property ControllerCheckoutRegister::$error has no effect in .../catalog/controller/checkout/register.php on line 162) Помогите пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 7 часов назад, OCappLab сказал: 3 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 8 часов назад, OCappLab сказал: 4 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? 28 минут назад, drmodjo сказал: В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Все, разобрался )). Большое спасибо вам OCappLab. Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 22 березня 2019 Share Опубліковано: 22 березня 2019 9 часов назад, drmodjo сказал: Все, разобрался )). Большое спасибо вам OCappLab. Не за что Надіслати Поділитися на інших сайтах More sharing options... 4 years later... Mhack Опубліковано: 13 березня Share Опубліковано: 13 березня В 22.03.2019 в 00:25, drmodjo сказав: Все, разобрался )). Большое спасибо вам OCappLab. Здравствуйте, как решили проблему, если помните?))) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Налаштування та оптимізація Проверка номера телефона по базе Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 4 часа назад, OCappLab сказал: Затем в файле catalog/model/account/customer.php В этом файле очень много кода связанного с email. Надіслати Поділитися на інших сайтах More sharing options...
OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 2 минуты назад, drmodjo сказал: В этом файле очень много кода связанного с email. Внимательно перечитайте мое сообщение выше 4 часа назад, OCappLab сказал: Затем в файле catalog/model/account/customer.php Ищем функцию getTotalCustomersByEmail() Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 минут назад, OCappLab сказал: Ищем функцию getTotalCustomersByEmail() Если использовать только эту часть кода, то опенкарт ругается. Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 4 минуты назад, drmodjo сказал: Если использовать только эту часть кода, то опенкарт ругается. Вы по аналогии сделайте. Тоесть создайте функцию, например, getTotalCustomersByPhone И проверку делайте уже использую эту функцию. А в контроллере, ее уже использовать по-аналогии с 4 часа назад, OCappLab сказал: В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 (змінено) 1 час назад, OCappLab сказал: Я очень извиняюсь. Что-то никак не получается. Могу я вам прислать эти два файла (register.php и customer.php), сделаете правку, чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? Буду вам очень благодарен. Замучали некоторые пользователи, а это их ограничит. Змінено 21 березня 2019 користувачем drmodjo Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 1 час назад, drmodjo сказал: чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? У вас в файлах есть шаблон. Копируете: 1 час назад, OCappLab сказал: В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Эти строчки, получится, примерно: if (utf8_strlen($this->request->post['telephone']) > 96) { $this->error['phone'] = $this->language->get('error_phone'); //тут нужно не забыть языковую переменную в файл добавить } if ($this->model_account_customer->getTotalCustomersByPhone($this->request->post['telephone'])) { $this->error['warning'] = $this->language->get('error_exists'); } И в модели так же само, по аналогии создаем функцию: public function getTotalCustomersByPhone($phone) { $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE LOWER(telephone) = '" . $this->db->escape(utf8_strtolower($phone)) . "'"); return $query->row['total']; } В идеале, конечно нужно чтоб телефоны были одного формата, чтоб проверка успешная была. А то кто-то напишет 555-55-55, а кто-то 5555555 Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 3 часа назад, OCappLab сказал: Благодарю. Получилось. Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 часов назад, OCappLab сказал: 1 час назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Соответственно выдает такую ошибку. (PHP Notice: Indirect modification of overloaded property ControllerCheckoutRegister::$error has no effect in .../catalog/controller/checkout/register.php on line 162) Помогите пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 7 часов назад, OCappLab сказал: 3 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 8 часов назад, OCappLab сказал: 4 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? 28 минут назад, drmodjo сказал: В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Все, разобрался )). Большое спасибо вам OCappLab. Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 22 березня 2019 Share Опубліковано: 22 березня 2019 9 часов назад, drmodjo сказал: Все, разобрался )). Большое спасибо вам OCappLab. Не за что Надіслати Поділитися на інших сайтах More sharing options... 4 years later... Mhack Опубліковано: 13 березня Share Опубліковано: 13 березня В 22.03.2019 в 00:25, drmodjo сказав: Все, разобрался )). Большое спасибо вам OCappLab. Здравствуйте, как решили проблему, если помните?))) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Налаштування та оптимізація Проверка номера телефона по базе Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 минут назад, OCappLab сказал: Ищем функцию getTotalCustomersByEmail() Если использовать только эту часть кода, то опенкарт ругается. Надіслати Поділитися на інших сайтах More sharing options...
OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 4 минуты назад, drmodjo сказал: Если использовать только эту часть кода, то опенкарт ругается. Вы по аналогии сделайте. Тоесть создайте функцию, например, getTotalCustomersByPhone И проверку делайте уже использую эту функцию. А в контроллере, ее уже использовать по-аналогии с 4 часа назад, OCappLab сказал: В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 (змінено) 1 час назад, OCappLab сказал: Я очень извиняюсь. Что-то никак не получается. Могу я вам прислать эти два файла (register.php и customer.php), сделаете правку, чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? Буду вам очень благодарен. Замучали некоторые пользователи, а это их ограничит. Змінено 21 березня 2019 користувачем drmodjo Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 1 час назад, drmodjo сказал: чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? У вас в файлах есть шаблон. Копируете: 1 час назад, OCappLab сказал: В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Эти строчки, получится, примерно: if (utf8_strlen($this->request->post['telephone']) > 96) { $this->error['phone'] = $this->language->get('error_phone'); //тут нужно не забыть языковую переменную в файл добавить } if ($this->model_account_customer->getTotalCustomersByPhone($this->request->post['telephone'])) { $this->error['warning'] = $this->language->get('error_exists'); } И в модели так же само, по аналогии создаем функцию: public function getTotalCustomersByPhone($phone) { $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE LOWER(telephone) = '" . $this->db->escape(utf8_strtolower($phone)) . "'"); return $query->row['total']; } В идеале, конечно нужно чтоб телефоны были одного формата, чтоб проверка успешная была. А то кто-то напишет 555-55-55, а кто-то 5555555 Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 3 часа назад, OCappLab сказал: Благодарю. Получилось. Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 часов назад, OCappLab сказал: 1 час назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Соответственно выдает такую ошибку. (PHP Notice: Indirect modification of overloaded property ControllerCheckoutRegister::$error has no effect in .../catalog/controller/checkout/register.php on line 162) Помогите пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 7 часов назад, OCappLab сказал: 3 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 8 часов назад, OCappLab сказал: 4 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? 28 минут назад, drmodjo сказал: В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Все, разобрался )). Большое спасибо вам OCappLab. Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 22 березня 2019 Share Опубліковано: 22 березня 2019 9 часов назад, drmodjo сказал: Все, разобрался )). Большое спасибо вам OCappLab. Не за что Надіслати Поділитися на інших сайтах More sharing options... 4 years later... Mhack Опубліковано: 13 березня Share Опубліковано: 13 березня В 22.03.2019 в 00:25, drmodjo сказав: Все, разобрался )). Большое спасибо вам OCappLab. Здравствуйте, как решили проблему, если помните?))) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Налаштування та оптимізація Проверка номера телефона по базе
drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 (змінено) 1 час назад, OCappLab сказал: Я очень извиняюсь. Что-то никак не получается. Могу я вам прислать эти два файла (register.php и customer.php), сделаете правку, чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? Буду вам очень благодарен. Замучали некоторые пользователи, а это их ограничит. Змінено 21 березня 2019 користувачем drmodjo Надіслати Поділитися на інших сайтах More sharing options...
OCappLab Опубліковано: 21 березня 2019 Share Опубліковано: 21 березня 2019 1 час назад, drmodjo сказал: чтобы я наглядно увидел а проверку других полей при регистрации уже сделаю по шаблону? У вас в файлах есть шаблон. Копируете: 1 час назад, OCappLab сказал: В функцию validate() по аналогии: if ((utf8_strlen($this->request->post['email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['email'])) { $this->error['email'] = $this->language->get('error_email'); } if ($this->model_account_customer->getTotalCustomersByEmail($this->request->post['email'])) { $this->error['warning'] = $this->language->get('error_exists'); } Эти строчки, получится, примерно: if (utf8_strlen($this->request->post['telephone']) > 96) { $this->error['phone'] = $this->language->get('error_phone'); //тут нужно не забыть языковую переменную в файл добавить } if ($this->model_account_customer->getTotalCustomersByPhone($this->request->post['telephone'])) { $this->error['warning'] = $this->language->get('error_exists'); } И в модели так же само, по аналогии создаем функцию: public function getTotalCustomersByPhone($phone) { $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE LOWER(telephone) = '" . $this->db->escape(utf8_strtolower($phone)) . "'"); return $query->row['total']; } В идеале, конечно нужно чтоб телефоны были одного формата, чтоб проверка успешная была. А то кто-то напишет 555-55-55, а кто-то 5555555 Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 3 часа назад, OCappLab сказал: Благодарю. Получилось. Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 часов назад, OCappLab сказал: 1 час назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Соответственно выдает такую ошибку. (PHP Notice: Indirect modification of overloaded property ControllerCheckoutRegister::$error has no effect in .../catalog/controller/checkout/register.php on line 162) Помогите пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 7 часов назад, OCappLab сказал: 3 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Надіслати Поділитися на інших сайтах More sharing options... drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 8 часов назад, OCappLab сказал: 4 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? 28 минут назад, drmodjo сказал: В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Все, разобрался )). Большое спасибо вам OCappLab. Надіслати Поділитися на інших сайтах More sharing options... OCappLab Опубліковано: 22 березня 2019 Share Опубліковано: 22 березня 2019 9 часов назад, drmodjo сказал: Все, разобрался )). Большое спасибо вам OCappLab. Не за что Надіслати Поділитися на інших сайтах More sharing options... 4 years later... Mhack Опубліковано: 13 березня Share Опубліковано: 13 березня В 22.03.2019 в 00:25, drmodjo сказав: Все, разобрался )). Большое спасибо вам OCappLab. Здравствуйте, как решили проблему, если помните?))) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 3 часа назад, OCappLab сказал: Благодарю. Получилось. Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Надіслати Поділитися на інших сайтах More sharing options...
drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 5 часов назад, OCappLab сказал: 1 час назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? Соответственно выдает такую ошибку. (PHP Notice: Indirect modification of overloaded property ControllerCheckoutRegister::$error has no effect in .../catalog/controller/checkout/register.php on line 162) Помогите пожалуйста. Надіслати Поділитися на інших сайтах More sharing options...
drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 7 часов назад, OCappLab сказал: 3 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Надіслати Поділитися на інших сайтах More sharing options...
drmodjo Опубліковано: 21 березня 2019 Автор Share Опубліковано: 21 березня 2019 8 часов назад, OCappLab сказал: 4 часа назад, drmodjo сказал: Вот только теперь надо править еще в catalog/controller/checkout/register.php. (тут поправил) А в catalog/model/checkout/customer.php такого не существует. Как тут быть? 28 минут назад, drmodjo сказал: В общем с этим тоже разобрался. Единственная проблема осталась в аккаунте пользователя. Нет возможности отредактировать информацию пользователя не сменив номер. Так как пишет: Данный номер телефона уже зарегистрирован! Как сделать, чтобы он писал ошибку только в том случае, если есть идентичный номер у других пользователей, а на свой чтобы не ругался? (Как email) Все, разобрался )). Большое спасибо вам OCappLab. Надіслати Поділитися на інших сайтах More sharing options...
OCappLab Опубліковано: 22 березня 2019 Share Опубліковано: 22 березня 2019 9 часов назад, drmodjo сказал: Все, разобрался )). Большое спасибо вам OCappLab. Не за что Надіслати Поділитися на інших сайтах More sharing options... 4 years later... Mhack Опубліковано: 13 березня Share Опубліковано: 13 березня В 22.03.2019 в 00:25, drmodjo сказав: Все, разобрался )). Большое спасибо вам OCappLab. Здравствуйте, как решили проблему, если помните?))) Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1
Mhack Опубліковано: 13 березня Share Опубліковано: 13 березня В 22.03.2019 в 00:25, drmodjo сказав: Все, разобрался )). Большое спасибо вам OCappLab. Здравствуйте, как решили проблему, если помните?))) Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts