如何解决在 Opencart 3.0.3.6 中调用购物车/编辑时,Chrome 正在更改会话 Cookie
我在运行 iis 10 和 php 7.3.13 的 2019 年服务器上运行 Opencart 3.0.3.6 作为 Intranet 供应订购站点。我有一个打嗝,我无法绕过去。该网站在任何地方都运行良好,除非用户尝试调整购物车中的商品数量。据我所知,当 opencart 调用 /cart/edit 时,有时 chrome 会更改 OCSESSID 的会话 cookie 值,删除该用户会话并将其注销。有时用户可以进行 3-4 次更改,有时用户需要重新登录十几次才能在不注销的情况下进行成功更改。该网站在 Firefox 上运行良好(工作人员使用 chromebook,否则我只会让他们暂时使用 Firefox)。
编辑:我在 Google Admin 中发现了相同的站点设置,允许我对特定站点使用旧的 cookie 设置。这实际上解决了我的问题,但我很想知道设置 Opencart 以使用 Chrome 不讨厌的安全相同站点设置的正确方法。
我找到了一些涉及“相同站点”设置的解决方案,但对我来说还没有完全解决。我试过应用某人的 vqmod:
<?xml version="1.0"?>
-<modification>
<id>Framework and catalog session samesite cookie</id>
<vqmver>2.5.0</vqmver>
<version>1.0</version>
<author>J.J. van de Merwe</author>
-<file error="log" name="system/framework.php">
-<operation>
-<search position="replace">
-<![CDATA[
setcookie($config->get('session_name'),$session->getId(),ini_get('session.cookie_lifetime'),ini_get('session.cookie_path'),ini_get('session.cookie_domain'));
]]>
</search>
-<add action="after">
-<![CDATA[
// ### Modified code: your-filename.xml ###
setcookie(
$config->get('session_name'),[
'expires' => ini_get('session.cookie_lifetime'),'path' => ini_get('session.cookie_path'),'domain' => ini_get('session.cookie_domain'),'secure' => true,'httponly' => true,'samesite' => 'None'
]
);
// ### (End) Modified code ###
]]>
</add>
</operation>
</file>
-<file error="log" name="catalog/controller/startup/session.php">
-<operation>
-<search position="replace">
-<![CDATA[
setcookie($this->config->get('session_name'),$this->session->getId(),ini_get('session.cookie_domain'));
]]>
</search>
-<add action="after">
-<![CDATA[
// ### Modified code: your-filename.xml ###
setcookie(
$this->config->get('session_name'),[
'expires' => ini_get('session.cookie_lifetime'),'samesite' => 'None'
]
);
// ### (End) Modified code ###
]]>
</add>
</operation>
</file>
</modification>
出于某种原因,这解决了我在本地测试服务器上的问题,但从远程计算机访问服务器会导致 Chrome 持续完全删除 cookie。
我完全不明白为什么这个问题如此间歇性,我不知道从哪里开始。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。