有人可以解释保存会话变量的位置吗?
我在控制器的header.php中添加了一些会话变量,例如:
$this->session->data['day']=date("d",strtotime($row['startdate']));
这在加载网站时有效,当我点击产品时,除了由Opencart设置的[language]
,[currency]
和[cart]
之外,所有变量都消失了。
我想还有另一个文件或控制器文件,我在其中设置变量,或设置了[language]
,[currency]
和[cart]
,但我找不到它。
提前致谢。
答案 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;];