Страница 1 из 1

Ошибки при авторизации через соц сети версия 4.0

Добавлено: 14.02.2021, 19:24
videowoolf
Доброго вечера перешёл на версию 4.0 буквально вчера всё вроде замечательно но в процессе выявил ошибку
Ошибка появляется при авторизации из гугл или фб

Код: Выделить всё

Notice: Undefined index: shopping_cart in /var/www/vhosts/u1296013.plsk.regruhosting.ru/Okay/Helpers/UserHelper.php on line 133

Warning: Invalid argument supplied for foreach() in /var/www/vhosts/u1296013.plsk.regruhosting.ru/Okay/Helpers/UserHelper.php on line 133

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/u1296013.plsk.regruhosting.ru/Okay/Helpers/UserHelper.php:133) in /var/www/vhosts/u1296013.plsk.regruhosting.ru/Okay/Core/BrowsedProducts.php on line 92

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/u1296013.plsk.regruhosting.ru/Okay/Helpers/UserHelper.php:133) in /var/www/vhosts/u1296013.plsk.regruhosting.ru/Okay/Core/Response.php on line 44


Кто сталкивался и что можно предпринять?

Добавлено: 14.02.2021, 20:45
Dysha-Kuzbass
Проверил у себя - полёт нормальный. Тока авторизовался через Гугл. ФБ нет аккаунта...

Добавлено: 14.02.2021, 20:47
videowoolf
Читал тут на форуме что ошибку наблюдали у рег.ру у меня как раз там сайт

Добавлено: 14.02.2021, 22:24
Dysha-Kuzbass
Кстати, даже на OpenServer`e авторизация работает!

Добавлено: 15.02.2021, 08:41
zyxer
в Okay\Helpers\UserHelper::mergeCart() оберните

Код: Выделить всё

foreach ($_SESSION['shopping_cart'] as $variantId => $amount) {
в

Код: Выделить всё

if (!empty($_SESSION['shopping_cart'])) {
    foreach ($_SESSION['shopping_cart'] as $variantId => $amount) {
        if (isset($itemsInDb[$variantId])) {
            $amount = max($amount, $itemsInDb[$variantId]->amount);
        }

        $userCartItemsEntity->updateAmount($_SESSION['user_id'], $variantId, $amount);
    }
}

Также в Okay\Core\BrowsedProducts::save()

Код: Выделить всё

setcookie('browsed_products', $_COOKIE['browsed_products'], time() + 60 * 60 * 24 * 30, '/');

оберните в условие

Код: Выделить всё

if (!empty($_COOKIE['browsed_products'])) {
    setcookie('browsed_products', $_COOKIE['browsed_products'], time() + 60 * 60 * 24 * 30, '/');
}