Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

ocStore 3.0.3.7 - Модифицированный OpenCart


 Share

Recommended Posts

17 часов назад, spectre сказал:

сию секунду 

и дать по рукам ещё тому кто посоветовал) 

Да, действительно почитал про Expires и Cache-Control.
Остановился на мысли, что Expires не нужен, оставил соответственно только Cache-Control.
Спасибо за помощь.

Это панель управления сайтом сама в конфиг добавляет ... благо эту оптимизацию можно отключить. 😅
Полез конфиг смотреть, только когда глюки проявились.

Link to comment
Share on other sites


@spectre @AlexDW @mpn2005 Коллеги, добрый день.
Подскажите, пожалуйста, по поводу установки для Cookie дополнительных флагов Secure; HttpOnly; SameSite=Lax.

Не могу найти информацию по этому поводу. Раньше в OcStore 2.3 ставился хотя бы флаг HttpOnly. Сейчас ни одного флага нет.

Попытался через .htaccess переопределить Cookie, но что-то не подхватывается:

Header edit Set-Cookie (.*) "$1; Secure; HttpOnly; SameSite=Lax"

Опять же для всех Cookie устанавливать HttpOnly, я так понимаю, не нужно. Достаточно эти флаги установить только на сессионные Cookie.
Кто как решает данную проблему, а то https://observatory.mozilla.org ругается?

Link to comment
Share on other sites


1 час назад, AlektroNik сказал:

Подскажите, пожалуйста, по поводу установки для Cookie дополнительных флагов Secure; HttpOnly; SameSite=Lax.

Не могу найти информацию по этому поводу. Раньше в OcStore 2.3 ставился хотя бы флаг HttpOnly. Сейчас ни одного флага нет.

Попытался через .htaccess переопределить Cookie, но что-то не подхватывается:

Header edit Set-Cookie (.*) "$1; Secure; HttpOnly; SameSite=Lax"

Опять же для всех Cookie устанавливать HttpOnly, я так понимаю, не нужно. Достаточно эти флаги установить только на сессионные Cookie.

Надо просто добавить нужные параметры в вызов функции setcookie
https://www.php.net/manual/ru/function.setcookie.php

 

Делать это надо в двух файлах:
system/framework.php

catalog/controller/startup/session.php

  • +1 2
Link to comment
Share on other sites

3 часа назад, mpn2005 сказал:

Надо просто добавить нужные параметры в вызов функции setcookie
https://www.php.net/manual/ru/function.setcookie.php

 

Делать это надо в двух файлах:
system/framework.php

catalog/controller/startup/session.php

И так и сяк бился, так и не смог прописать массив параметров ...:blink::cry: В лучшем случае получалось получить ошибку, я кобы 6 параметр должен быть белово, а у меня массив, во всех остальных комбинациях просто белый экран.

 

Могли бы мне помочь прописать три параметра на этом примере?:oops:

'secure' => true'httponly' => true'samesite' => 'Lax']
setcookie($config->get('session_name'), $session->getId(), (ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0), ini_get('session.cookie_path'), ini_get('session.cookie_domain'));

 

Link to comment
Share on other sites


16 минут назад, AlektroNik сказал:

Могли бы мне помочь прописать три параметра на этом примере?

Там не массив. Вот эти два параметра булевы.

image.png.dac38d772931f9fa965c779789767f15.png

Нужно передать их просто как true;

 

Что касается samesite, то тут есть неболшой чит - его можно приклеить к параметру path. Массивом параметры можно передавать начиная с версии php 7.3

 

Вот итоговая запись под ваш случай:

setcookie($config->get('session_name'), $session->getId(), (ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0), ini_get('session.cookie_path') . '; SameSite=Lax', ini_get('session.cookie_domain'), true, true);

 

Писал без проверки. Надеюсь, нигде не промазал.

А вообще все эти ответы есть на указанной странице из документации php. Коментарии тоже полезно читать.

 

  • +1 1
Link to comment
Share on other sites

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

Там не массив. Вот эти два параметра булевы.

image.png.dac38d772931f9fa965c779789767f15.png

Нужно передать их просто как true;

 

Что касается samesite, то тут есть неболшой чит - его можно приклеить к параметру path. Массивом параметры можно передавать начиная с версии php 7.3

 

Вот итоговая запись под ваш случай:

setcookie($config->get('session_name'), $session->getId(), (ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0), ini_get('session.cookie_path') . '; SameSite=Lax', ini_get('session.cookie_domain'), true, true);

 

Писал без проверки. Надеюсь, нигде не промазал.

А вообще все эти ответы есть на указанной странице из документации php. Коментарии тоже полезно читать.

 

 

Большое спасибо.
По поводу прибавки к path читал, OcStore последний как раз ниже 7.3 не работает.
Так что описанный Вам способ немного не мой случай.
Мне как-то это нужно в массив для PHP >=7.3 запихнуть без прибавления к path.
И комментарии читал часа 3, и гуглили и яндексил и эксперементировал. Максимум удалось добиться, прописать в конце truetrue для secure и httponly.
Нигде не могу найти инфу как нужно массив в эту строчку впхнуть.
 

Вот по идее должен быть рабочий вариант, выставил квадратные скобки после второго параметра, и все равно белый экран.
 

1. For PHP >= v7.3

You can use the $options array to set the samesite value, for example:

setcookie($name, $value, [
    'expires' => time() + 86400,
    'path' => '/',
    'domain' => 'domain.com',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'None',
]);

The value of the samesite element should be either None, Lax or Strict.

Read more in the manual page.

 

Если Вас не затруднит, можете просто пример внедрения массива показать в эту строчку? 

Link to comment
Share on other sites


18 минут назад, mpn2005 сказал:

setcookie($config->get('session_name'), $session->getId(), (ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0), ini_get('session.cookie_path') . '; SameSite=Lax', ini_get('session.cookie_domain'), true, true);

И этот вариант, к сожалению не отрабатывает.

PHP 7.3 не обманешь )))
Выдает ошибку:
Cookie paths cannot contain any of the following ',; \t\r\n\013\014'

Link to comment
Share on other sites


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

И этот вариант, к сожалению не отрабатывает.

PHP 7.3 не обманешь )))
Выдает ошибку:
Cookie paths cannot contain any of the following ',; \t\r\n\013\014'

Вот как выше писали и должно работать:
image.png.f28ae4cee2f8ec388803a0ce33f14a87.png

Только вместо констант туда всё из переменных записать.

  • +1 1
Link to comment
Share on other sites

18 минут назад, AlektroNik сказал:

You can use the $options array to set the samesite value, for example:

setcookie($name, $value, [
    'expires' => time() + 86400,
    'path' => '/',
    'domain' => 'domain.com',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'None',
]);

The value of the samesite element should be either None, Lax or Strict.

Read more in the manual page.

Вот тут ровно та же запись.

 

А если выпадет белый экран, то надо смотреть лог ошибок php. Скорее всего где-то синтаксическая ошибка.

  • +1 1
Link to comment
Share on other sites

Вот так должно быть для php 7.3+

 

Для файла system/framework.php

setcookie($config->get('session_name'), $session->getId(), [
    'expires' => ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0,
    'path' => ini_get('session.cookie_path'),
    'domain' => ini_get('session.cookie_domain'),
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

 

Для файла catalog/controller/startup/session.php

setcookie($this->config->get('session_name'), $this->session->getId(), [
    'expires' => ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0,
    'path' => ini_get('session.cookie_path'),
    'domain' => ini_get('session.cookie_domain'),
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

 

Код немного отличается, т.к. во втором случае он выполняется в методе объекта.

В этом, скорее всего, вы и слепили себе ошибку 500.

  • +1 1
Link to comment
Share on other sites

8 минут назад, mpn2005 сказал:

Вот так должно быть для php 7.3+

 

Для файла system/framework.php

setcookie($config->get('session_name'), $session->getId(), [
    'expires' => ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0,
    'path' => ini_get('session.cookie_path'),
    'domain' => ini_get('session.cookie_domain'),
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

 

Для файла catalog/controller/startup/session.php

setcookie($this->config->get('session_name'), $this->session->getId(), [
    'expires' => ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0,
    'path' => ini_get('session.cookie_path'),
    'domain' => ini_get('session.cookie_domain'),
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

 

Код немного отличается, т.к. во втором случае он выполняется в методе объекта.

В этом скорее всего вы и слепили себе ошибку 500.

Огромное спасибо, все получилось. 🍻

Link to comment
Share on other sites


Всем добрый день. Хочу перевести OcStore 3 с админкой и витриной на новые css framework. Есть ли где сообщество кто этим уже занимается? Возможно часть моей работы будет полезной для сообщества? 

Edited by Anton29061987
Link to comment
Share on other sites


Люди добрые! помогите чтобы работал функционал SeoPro, создал тему здесь, решилось частично.

Установил ocStore 3 в подпапку shop.

htaccess переименован и дополнен RewriteBase /shop/

в конфигах https://example/shop/

Options +FollowSymlinks

изменен на это

Options +SymLinksIfOwnerMatch

Страницы открываются, главная показывает "Циклическое перенаправление на странице"

Link to comment
Share on other sites


1 час назад, yurame1nik сказал:

Страницы открываются, главная показывает "Циклическое перенаправление на странице"

Попробуйте сменить в админке настройку "Добавить слэш в конец ссылки"

Это в настройках магазина на закладке SeoPro

  • +1 1
Link to comment
Share on other sites

21 минуту назад, mpn2005 сказал:

Попробуйте сменить в админке настройку "Добавить слэш в конец ссылки"

Это в настройках магазина на закладке SeoPro

 

mpn2005 большое спасибо Вам за помощь, главная открывается, думаю вопрос на этом решен.

можно теперь краткий мануал писать)

Link to comment
Share on other sites


чувство юмора у каждого свое

поэтому просто и без шуток - в сборках ocStore 3020-3037 нет Сахалинской области в БД

 

которая в 15х-2х была в install.sql

(2737, 176, 'SAK', 'Сахалинская область', 1),

 

  • +1 1
Link to comment
Share on other sites

Уважаемые подскажите пожалуйста а какие различия у данной сборки по сравнению с оригинальной версией Opencart 3.0.3.7?

То что поправили ошибки по сравнению с версией 3.0.2.0 это понятно...но что добавили то в сравнении с Opencart 3.0.3.7?

Link to comment
Share on other sites


22 часа назад, AlexDW сказал:

чувство юмора у каждого свое

поэтому просто и без шуток - в сборках ocStore 3020-3037 нет Сахалинской области в БД

 

которая в 15х-2х была в install.sql

(2737, 176, 'SAK', 'Сахалинская область', 1),

 

Спасибо за новодку.

А ничего страшного, что есть одинаковые коды и даже имена регионов?

image.png.16e737ae90416475b9ae2c7002efd921.png

Link to comment
Share on other sites


4 часа назад, max114 сказал:

Уважаемые подскажите пожалуйста а какие различия у данной сборки по сравнению с оригинальной версией Opencart 3.0.3.7?

То что поправили ошибки по сравнению с версией 3.0.2.0 это понятно...но что добавили то в сравнении с Opencart 3.0.3.7?

По идее и в первом посте на странице загрузки есть информация ...

Мне кажется ее вполне достаточно.
Различия между ocStore 3.0.3.7 и OpenCart 3.0.2.0

 

Edited by AlektroNik
Link to comment
Share on other sites


2 часа назад, AlektroNik сказал:

А ничего страшного, что есть одинаковые коды и даже имена регионов?

главное чтобы названия стран и их коды отличались

  • +1 1
Link to comment
Share on other sites

Решил обновиться поверх свежеУстановленной версию ocStore 3.0.2.0 (с хостинга)
PHP 7.4

Во время обновления появляется ошибка:

Upgrade Progress

 

Error Code(0): Error: Table 'igor12w7_ocar1.oc_url_alias' doesn't exist
Error No: 1146
SELECT * FROM `oc_url_alias` in /home/i/igor12w7/"website"/public_html/system/library/db/mysqli.php on line 41

 

И ещё в добавок PHP_errors.log

 

Всё делал по инструкции, что не так?

PHP_errors.log

Edited by NineBot
Link to comment
Share on other sites


1 час назад, NineBot сказал:

Решил обновиться поверх свежеУстановленной версию ocStore 3.0.2.0 (с хостинга)
PHP 7.4

Что вам непонятно в сообщении ошибки? Нет у вас в БД такой таблицы.
Скорее всего, разные префиксы указываете при обновлении и установке.
А еще непонятно, зачем вам свежеустановленный ос обновлять. Снесите и поставьте новую версию. 
PS: А вы уверены, что "с хостинга" у вас именно окстор? А не обычный опенкарт? Как-то ни разу не встречалось такого. Тогда тем более бесполезно пытаться обновить.

Edited by Shureg
Link to comment
Share on other sites


@Shureg Спасибо за рассуждения на эту тему (не взирая на выходной :). Отвечу по порядку:

 

1 hour ago, Shureg said:

Что вам непонятно в сообщении ошибки? Нет у вас в БД такой таблицы.

1. Да, её, нет. А дальше казалось бы, что делать? :)
* Если подразумевается, что я её должен создавать вручную, то где почитать с какими параметрами и т.д.?
* С другой стороны, неужели сложно создавать все необходимые таблицы во время обновления (тем более все доступы есть). Странно что нет для этого скрипта.

 

1 hour ago, Shureg said:

Скорее всего, разные префиксы указываете при обновлении и установке.

я уж точно ничего не указывал. Процесс обновления крайне прост и ничего вводить не предлагает.

Spoiler

(для наглядности)
20210808.thumb.png.76e0f208c985413d5fc20367739402d4.png

 

1 hour ago, Shureg said:

PS: А вы уверены, что "с хостинга" у вас именно окстор? А не обычный опенкарт? Как-то ни разу не встречалось такого. Тогда тем более бесполезно пытаться обновить.

Точно OpenCart ocStore 3.0.2.0

 

1 hour ago, Shureg said:

А еще непонятно, зачем вам свежеустановленный ос обновлять. Снесите и поставьте новую версию. 

Верно. Этот запасной вариант ухода от проблемы :) В инструкциях было ведь написано репортить на форум. Что я и сделал. Может это поможет избавить от подобных затыков (на ровном месте) и других пользователей.

Edited by NineBot
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.