Opencart中的会话变量

时间:2011-12-12 09:10:02

标签: php opencart

有人可以解释保存会话变量的位置吗?

我在控制器的header.php中添加了一些会话变量,例如:

$this->session->data['day']=date("d",strtotime($row['startdate']));

这在加载网站时有效,当我点击产品时,除了由Opencart设置的[language][currency][cart]之外,所有变量都消失了。

我想还有另一个文件或控制器文件,我在其中设置变量,或设置了[language][currency][cart],但我找不到它。

提前致谢。

5 个答案:

答案 0 :(得分:11)

未在文件中设置会话值。如果要设置会话变量,请使用

$this->session->data['variable_name_here'] = 'data value here';

并检索您刚访问的值

$this->session->data['variable_name_here']

例如,要回显它,请使用

echo $this->session->data['variable_name_here'];

答案 1 :(得分:2)

这里我将变量保存到会话中:

public function receive() {
    $this->session->data['guest_name'] = $this->request->post['name'];
    $this->session->data['guest_address'] = $this->request->post['address'];
}

现在在catalog/controller/checkout/guest.php index方法检查该会话变量,如果已设置,请将值存储在$this->data数组中以呈现给模板:

if(isset($this->session->data['guest_name'])) { // it is enough to check only for one variable and only if it is set
    $this->data['guest_name'] = $this->session->data['guest_name'];
    $this->data['guest_address'] = $this->session->data['guest_address'];
}

之后您可以在模板中回显这些值(仍在检查是否存在):

<?php if(isset($guest_name)) { ?>
<div><?php echo $guest_name . ' - ' . $guest_address; ?></div>
<?php } ?>

现在你应该在避免任何undefined variable通知的情况下完成......

答案 2 :(得分:2)

没有文件保存会话变量。 使用&#34; system / library / Session.php&#34;创建开放式购物车会话。您可以在打开的购物车中创建这样的会话。

<?php
     $this->session->data['session_name'] = 'session value';
?>

现在你可以在这样的开放式购物车的任何地方召集这个会议。

<?php
     echo $this->session->data['session_name'];
?>

答案 3 :(得分:1)

我觉得我迟到了,但处理会话的主类是在system / library / session.php中,它有公共变量$ data并在构造函数中处理$ _SESSION。 所以你把它合并的$ this-&gt; session-&gt;数据放进去了。

希望这会有所帮助。

感谢

答案 4 :(得分:0)

/system/library/customer.php包含$ this-&gt; session-&gt; data [&#39; customer_id&#39;];