ryancoolround Опубликовано 3 августа, 2022 Поделиться Опубликовано 3 августа, 2022 Время от времени в логах появляется ошибка, говорящая о том, что ее вызвал гость, на подобных страницах: 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} Эту ошибку как то возможно исправить? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 3 августа, 2022 Поделиться Опубликовано 3 августа, 2022 Если гости не могут покупать в принципе, то добавить if ( !\IPS\Member::loggedIn()->member_id ) { \IPS\Output::i()->error( 'no_module_permission_guest', '2X215/3', 403, '' ); } перед строкой 54 (сразу после else). by_ix и ryancoolround 1 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ryancoolround Опубликовано 3 августа, 2022 Автор Поделиться Опубликовано 3 августа, 2022 1 минуту назад, Desti сказал: Если гости не могут покупать А гости в IPS разве априори что то могут покупать? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ryancoolround Опубликовано 3 августа, 2022 Автор Поделиться Опубликовано 3 августа, 2022 15 минут назад, Desti сказал: if ( !\IPS\Member::loggedIn()->member_id ) { \IPS\Output::i()->error( 'no_module_permission_guest', '2X215/3', 403, '' ); } Так, я это вставил в файл: Спойлер Как теперь проверить, выйдет ли подобная ошибка или нет? А ну вот: В счетах стали появляться счета от гостей: Но ошибка при этом появляться вроде перестала. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 3 августа, 2022 Поделиться Опубликовано 3 августа, 2022 Счета от гостей появляться будут, по умолчанию гость может положить товар в корзину, но для покупки нужна регистрация. Возможно, мое решение не самое корректное, может стоит перехватить исключение.. Замените 58-ю строку на это: (а первое исправление удалите) try { $this->invoice = \IPS\nexus\Invoice::load( \IPS\Request::i()->id ); } catch ( \OutOfRangeException $e ) { \IPS\Output::i()->error( 'node_error', '2X215/7', 404, '' ); } by_ix, Xontero и ryancoolround 2 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ryancoolround Опубликовано 3 августа, 2022 Автор Поделиться Опубликовано 3 августа, 2022 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, '' ); } } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 3 августа, 2022 Поделиться Опубликовано 3 августа, 2022 $this->invoice = \IPS\nexus\Invoice::load( \IPS\Request::i()->id ); это заменить на то, что кинул он. ryancoolround и Xontero 1 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
ryancoolround Опубликовано 3 августа, 2022 Автор Поделиться Опубликовано 3 августа, 2022 @Desti, @by_ix спасибо. Вы очень помогли. Если будут изменения сообщу. by_ix и aLEX49566 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.