Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Ошибка при входе в "Изменить контактную информацию"


Recommended Posts

Здравстуйте. Подскажите что могло произойти. При попытке редактирования личной информации (account/edit) выдает ошибку

 Fatal error: Call to a member function getCustomer() on null in /var/www/u0925585/data/ocartdata/storage/modification/catalog/controller/account/edit.php on line 87.

Надіслати
Поділитися на інших сайтах


15 минут назад, anruzh67 сказал:

Здравстуйте. Подскажите что могло произойти. При попытке редактирования личной информации (account/edit) выдает ошибку

 Fatal error: Call to a member function getCustomer() on null in /var/www/u0925585/data/ocartdata/storage/modification/catalog/controller/account/edit.php on line 87.

а что в указанной строке?

Надіслати
Поділитися на інших сайтах


36 минут назад, anruzh67 сказал:

Call to a member function getCustomer() on null

Функция должна получать ИД пользователя, примерно так, $customer_info = $this->model_account_customer->getCustomer($this->customer->getId());

Если в функцию передается пустое значение, то возникает ошибка.

 

Надіслати
Поділитися на інших сайтах

if ($this->request->server['REQUEST_METHOD'] != 'POST') {
            $customer_info = $this->model_account_customer->getCustomer($this->customer->getId());
        } 

Файл не менялся. Думаю что то с настройками или модулями.

Надіслати
Поділитися на інших сайтах


6 минут назад, esculapra сказал:

Функция должна получать ИД пользователя, примерно так, $customer_info = $this->model_account_customer->getCustomer($this->customer->getId());

Если в функцию передается пустое значение, то возникает ошибка.

 

ИД пользователя или клиента? в базе эти значения не нулевые.

Надіслати
Поділитися на інших сайтах


1 минуту назад, nikifalex сказал:

куда-то потерялся $this->load->model('account/customer');

 

 

<?php
class ControllerAccountEdit extends Controller {
    private $error = array();

    public function index() {
        if (!$this->customer->isLogged()) {
            $this->session->data['redirect'] = $this->url->link('account/edit', '', true);

            $this->response->redirect($this->url->link('account/login', '', true));
        }

        $this->load->language('account/edit');

        $this->document->setTitle($this->language->get('heading_title'));

        $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/moment/moment.min.js');
        $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/moment/moment-with-locales.min.js');
        $this->document->addScript('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js');
        $this->document->addStyle('catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css');

        $this->load->model('account/customer'); 

Он в начале.

Надіслати
Поділитися на інших сайтах


<file path="catalog/controller/account/edit.php">
            <operation>
                <search trim="true"><![CDATA[$this->load->model('account/customer');]]></search>
                <add position="replace"><![CDATA[]]></add>
            </operation>
            <operation>
                <search ><![CDATA[if ($this->request->server['REQUEST_METHOD'] == 'POST' && isset($this->request->post['submitted']) && $this->validate()) {]]></search>
                <add position="replace"><![CDATA[
        $this->load->model('account/customer');
        if(isset($this->request->post['edit']['telephone'])){
            $telephone = preg_replace('/[^0-9]/','',$this->request->post['edit']['telephone']);
            $telephone = preg_replace('/^(7|8)([0-9]{10})$/','7$2',$telephone);
            $telephone = preg_replace('/^(380)([0-9]{9})$/','380$2',$telephone);

            if(!preg_match('/^(7)([0-9]{10})$/',$telephone) && !preg_match('/^(380)([0-9]{9})$/',$telephone)){
                $telephone = '';
            }
        
            if (!$telephone) {
                $this->_templateData['phone_error'] = 'Неверный формат номера!';
            }
        }else{
            $telephone = '';
        }
        $customer_info = $this->model_account_customer->getCustomer($this->customer->getId());
        if($this->model_account_customer->getLoginTele($telephone) && $telephone!=$customer_info['telephone']){
            $this->_templateData['phone_error'] = 'Такой номер уже зарегистрирован!';
        }
        
        if ($this->request->server['REQUEST_METHOD'] == 'POST' && isset($this->request->post['submitted']) && $this->validate() && !isset($this->_templateData['phone_error'])) {
        
            $this->request->post['edit']['telephone'] = $telephone;
            $this->session->data['simple']['edit']['telephone'] = $telephone;
        ]]></add>
            </operation>
        </file>

Может здесь что не так. Это модуль регистрации по номеру телефона.

Надіслати
Поділитися на інших сайтах


или там же

 

 

<file path="catalog/controller/account/edit.php">
            <operation>
                <search trim="true"><![CDATA[if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {]]></search>
                <add position="before"><![CDATA[$this->load->model('account/customer');
                $telephone = preg_replace('/[^0-9]/','',$this->request->post['telephone']);
                $telephone = preg_replace('/^(7|8)([0-9]{10})$/','7$2',$telephone);
                $telephone = preg_replace('/^(380)([0-9]{9})$/','380$2',$telephone);

                if(!preg_match('/^(7)([0-9]{10})$/',$telephone) && !preg_match('/^(380)([0-9]{9})$/',$telephone)){
                    $telephone = '';
                }
                if (!$telephone) {
                    $this->error['telephone'] = 'Неверный формат номера!';
                }
                $customer_info = $this->model_account_customer->getCustomer($this->customer->getId());
                if($this->model_account_customer->getLoginTele($telephone) && $telephone!=$customer_info['telephone']){
                    $this->error['telephone'] = 'Такой номер уже зарегистрирован!';
                }
                ]]></add>
            </operation>
        </file>

Надіслати
Поділитися на інших сайтах


2 минуты назад, anruzh67 сказал:

или там же

 

 

<file path="catalog/controller/account/edit.php">
            <operation>
                <search trim="true"><![CDATA[if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {]]></search>
                <add position="before"><![CDATA[$this->load->model('account/customer');
                $telephone = preg_replace('/[^0-9]/','',$this->request->post['telephone']);
                $telephone = preg_replace('/^(7|8)([0-9]{10})$/','7$2',$telephone);
                $telephone = preg_replace('/^(380)([0-9]{9})$/','380$2',$telephone);

                if(!preg_match('/^(7)([0-9]{10})$/',$telephone) && !preg_match('/^(380)([0-9]{9})$/',$telephone)){
                    $telephone = '';
                }
                if (!$telephone) {
                    $this->error['telephone'] = 'Неверный формат номера!';
                }
                $customer_info = $this->model_account_customer->getCustomer($this->customer->getId());
                if($this->model_account_customer->getLoginTele($telephone) && $telephone!=$customer_info['telephone']){
                    $this->error['telephone'] = 'Такой номер уже зарегистрирован!';
                }
                ]]></add>
            </operation>
        </file>

а зачем два раза подключение?

Надіслати
Поділитися на інших сайтах


12 минут назад, anruzh67 сказал:

$customer_info = $this->model_account_customer->getCustomer($this->customer->getId());

Фаталка именно тут - смотри уже модифицированный файл.

Надіслати
Поділитися на інших сайтах

Только что, anruzh67 сказал:

Может один закоментировать. Только какой?

не совсем ясно зачем модификатор вообще удаляет стандартное подключение модели и заменяет его своим в двух местах. уточнить у разработчика- нахрена сия трабла вы можете? тогда и будет понятно как переделать

Надіслати
Поділитися на інших сайтах


7 минут назад, nikifalex сказал:

что за модуль то такой чудной? Хоть ссылку дайте.

Пора уже делать список авторов модулей-рукожопов

Он бесплатный и распространяется ка есть.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.