Posted 3 августа, 20222 yr comment_184495 Время от времени в логах появляется ошибка, говорящая о том, что ее вызвал гость, на подобных страницах: https://ip-gamers.net/clients/orders/13 Сама ошибка вот: OutOfRangeException: (0) #0 ip-gamers.net/applications/nexus/modules/front/clients/invoices.php(58): IPS\Patterns\_ActiveRecord::load('13') #1 ip-gamers.net/system/Dispatcher/Dispatcher.php(153): IPS\nexus\modules\front\clients\_invoices->execute() #2 ip-gamers.net/index.php(13): IPS\_Dispatcher->run() #3 {main} Эту ошибку как то возможно исправить? Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/ Share on other sites Больше вариантов
3 августа, 20222 yr comment_184500 Если гости не могут покупать в принципе, то добавить if ( !\IPS\Member::loggedIn()->member_id ) { \IPS\Output::i()->error( 'no_module_permission_guest', '2X215/3', 403, '' ); } перед строкой 54 (сразу после else). Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/?&do=findComment&comment=184500 Share on other sites Больше вариантов
3 августа, 20222 yr Author comment_184501 1 минуту назад, Desti сказал: Если гости не могут покупать А гости в IPS разве априори что то могут покупать? Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/?&do=findComment&comment=184501 Share on other sites Больше вариантов
3 августа, 20222 yr Author comment_184502 15 минут назад, Desti сказал: if ( !\IPS\Member::loggedIn()->member_id ) { \IPS\Output::i()->error( 'no_module_permission_guest', '2X215/3', 403, '' ); } Так, я это вставил в файл: Спойлер Как теперь проверить, выйдет ли подобная ошибка или нет? А ну вот: В счетах стали появляться счета от гостей: Но ошибка при этом появляться вроде перестала. Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/?&do=findComment&comment=184502 Share on other sites Больше вариантов
3 августа, 20222 yr comment_184503 Счета от гостей появляться будут, по умолчанию гость может положить товар в корзину, но для покупки нужна регистрация. Возможно, мое решение не самое корректное, может стоит перехватить исключение.. Замените 58-ю строку на это: (а первое исправление удалите) try { $this->invoice = \IPS\nexus\Invoice::load( \IPS\Request::i()->id ); } catch ( \OutOfRangeException $e ) { \IPS\Output::i()->error( 'node_error', '2X215/7', 404, '' ); } Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/?&do=findComment&comment=184503 Share on other sites Больше вариантов
3 августа, 20222 yr Author comment_184505 14 минут назад, Desti сказал: Замените 58-ю строку на это: (а первое исправление удалите) Прости за такой глупый вопрос. Но 58 строка после редактирования или до? Вот в данный момент это фрагмент выглядит так: if ( \IPS\Member::loggedIn()->member_id ) { try { $this->invoice = \IPS\nexus\Invoice::loadAndCheckPerms( \IPS\Request::i()->id ); } catch ( \OutOfRangeException $e ) { \IPS\Output::i()->error( 'node_error', '2X215/1', 404, '' ); } } else if ( !\IPS\Member::loggedIn()->member_id ) { \IPS\Output::i()->error( 'no_module_permission_guest', '2X215/3', 403, '' ); } { /* Prevent the vid key from being exposed in referrers */ \IPS\Output::i()->sendHeader( "Referrer-Policy: origin" ); $key = isset( \IPS\Request::i()->key ) ? \IPS\Request::i()->key : ( isset( \IPS\Request::i()->cookie['guestTransactionKey'] ) ? \IPS\Request::i()->cookie['guestTransactionKey'] : NULL ); $this->invoice = \IPS\nexus\Invoice::load( \IPS\Request::i()->id ); if( $this->invoice->member->member_id or !$key or !isset( $this->invoice->guest_data['guestTransactionKey'] ) or !\IPS\Login::compareHashes( $key, $this->invoice->guest_data['guestTransactionKey'] ) ) { \IPS\Output::i()->error( 'no_module_permission_guest', '2X215/6', 404, '' ); } } Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/?&do=findComment&comment=184505 Share on other sites Больше вариантов
3 августа, 20222 yr comment_184506 $this->invoice = \IPS\nexus\Invoice::load( \IPS\Request::i()->id ); это заменить на то, что кинул он. Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/?&do=findComment&comment=184506 Share on other sites Больше вариантов
3 августа, 20222 yr Author comment_184508 @Desti, @by_ix спасибо. Вы очень помогли. Если будут изменения сообщу. Link to comment https://ipbmafia.ru/topic/24695-vozmozhno-li-ispravit-oshibku-v-magazine/?&do=findComment&comment=184508 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.