整个站点上的Opencart 3会话数据

问题描述

我只是想知道是否有可能在Opencart网站上设置会话?

我的意思是我已经在Opencart网站上创建了一个子目录相册。我要实现的是在产品页面上,当用户单击相册图标时,它将带到相册子目录中。在专辑子目录上,将有一个用户必须填写的表格。用户在提交时从相册目录填写该表单后,用户应将相册目录中填写的表单数据重定向到该产品页面。另外,产品页面应该选择与他/她在点击相册之前选择的选项相同的选项。

我尝试通过在相册页面上使用以下代码设置会话数据来完成此操作。

sessionStorage.setItem("album",JSON.stringify(tdata));

然后,使用window.history.go(-1);返回产品页面

但是,我仍然无法在我的产品页面获取专辑会话数据。我同时尝试了$_SESSION$this->session->data

有人知道如何实现这一目标吗?

谢谢

解决方法

在OC会话中保存数据:

$this->session->data['your_data'] = $some_data;

已编辑:

要在同一域的非OC站点中保存和检索数据,请使用: 该文件应在获取该数据之前运行。这意味着数据必须保存到会话中。 在您要从中获取数据的文件中:

session_start();
$_SESSION['my_data'] = $some_data;

要在以后从同一域中所需的会话中检索数据,请使用以下代码:

session_start();
if (isset($_SESSION['my_data']))
    $sessionData = $_SESSION['my_data'];
else 
    $sessionData= '';

要清除数据,请使用unset()PHP函数,如下所示:

unset($_SESSION['my_data']);
,

我创建了自定义jquery文件,并将其注入到$data['heading_title'] = $product_info['name'];之前的产品页面中。

$this->document->addScript('catalog/view/javascript/jquery/album.js');

在我的album.js中

$(document).ready(function(e) {
      if (sessionStorage.getItem("album_data") != null) {
        var data = sessionStorage.getItem("album_data");
        console.log(data);
      }
}

在我的自定义album.php中,该文件位于mysite / album /

<script>
    sessionStorage.setItem("album_data",JSON.stringify(tdata));
    window.history.go(-1);
</script>

无需创建会话或其他任何内容。由于OC有自己的处理会话数据的方式,因此在controller / product.php中无法创建新会话。因此,我们将无法访问其中的任何$ _SESSION数据。 OC仅了解$this-session->data