Странная проблемы вылезла после перехода на https сайта магазина:
Некоторые аяксовые запросы — удаление из корзины, оценка товара — редиряктят на главную.
При том что другие, например, добавление товара в корзину, работают нормально.
Отключаю https на сайте — проблема исчезает.
У кого стоит InstantShop с https — отзовитесь, хочу понять это только у меня проблема или нужно обращаться к R2
Глюки в магазине на https
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
InstantCMS 1.X
#1
18 октября 2017 в 13:37
#2
18 октября 2017 в 13:48
В шаблонах или в самих скриптах надо проверить чтоб адрес использовался https, у вас скорее всего на хостинге стоит безусловная переадресация всех запросов на HTTPS
Эх знать бы где искать…В шаблонах или в самих скриптах надо проверить чтоб адрес использовался https
Попробовал поиском запросить, где в файлах написано "http:" — так оказалось что в почти во всех т.к. верху есть строка
Каких-то левых скриптов вроде нет.instantcms.ru/, info@instantcms.ru
Т.е. речь про обычную ссылку в корзине
Из которой стандартный роутер достает
Которые фронтенд передает модели
Которую модель превращает в запрос
И все — никаких http
<a class="delete" href="/shop/deletefromcart/207925" title="Отказаться"></a>
'do' => 'delete_from_cart', 1 => 'delete_from_cart_item_id'
$model->deleteFromCart($item_id);
$this->inDB->query("DELETE FROM cms_shop_cart WHERE id = '{$cart_item_id}' LIMIT 1");
Сегодня в 20:11
eoleg, спасибо, но я не очень дружу с линуксом и обычно, решая проблемы сайта, разворачиваю бекап на локальной машине под виндой.
Вроде заменил, где нашел, "http" на "https:" — но это не очень помогло. основная проблема осталась...
Нашел, что отрабатывая запрос удаления, выполняется $inCore->redirectBack();
У самой же функции прописано
И вот смотрю на этот HTTP заголовок и думаю может в нем дело?
Вроде заменил, где нашел, "http" на "https:" — но это не очень помогло. основная проблема осталась...
Нашел, что отрабатывая запрос удаления, выполняется $inCore->redirectBack();
У самой же функции прописано
public static function redirect($url, $code='303'){ if ($code == '301'){
#6
24 октября 2017 в 04:16
Проблему решил. Закрываю.
т.к. завернул на мойсайт всё, в т.ч. и с www.мойсайт
getBackURL возвращал всегда ''/" вместо адреса вызова и возврата
Сбой проходил в файле core/cms.php в месте:
т.е. сравненивалось
$_SERVER['HTTP_HOST'] — который был с www
и хост в $_SERVER['HTTP_REFERER']? который уже был без www
Исправил, поменяв условие сравнения на
getBackURL возвращал всегда ''/" вместо адреса вызова и возврата
Сбой проходил в файле core/cms.php в месте:
if($refer_host == $_SERVER['HTTP_HOST']){ }
$_SERVER['HTTP_HOST'] — который был с www
и хост в $_SERVER['HTTP_REFERER']? который уже был без www
Исправил, поменяв условие сравнения на
if($refer_host == $_SERVER['HTTP_X_REAL_HOST']){