0

我正在使用 codeigniter 来建立一个电子商务网站。我在控制器上有一个方法,用户在结帐前输入他们的交付信息,该方法保存交付信息并创建一个名为“orderid”的新会话变量,它的值是 orderid 的值。设置会话变量后,该方法重定向到结帐控制器,我从会话中检索“orderid”以从数据库中检索订单,以便用户在付款前确认信息。

问题是,当用户被重定向到结帐页面时,他们看不到他们的交付数据。什么时候做

echo $this->session->userdata('orderid');

我可以看到值但是当我将它传递给我应该返回数据数组的方法时

$order = $this->orders->get_order($this->session->userdata('orderid'));
print_r($order);

我得到一个空数组array()

刷新结帐页面时,它的行为正确。可能是什么问题呢

4

2 回答 2

0

为了使会话正常工作,您必须添加$this->load->library('session');到您的__contruct()功能

public function __construct() {
parent::__contruct();
$this->load->library('session');
}
于 2012-10-16T06:22:21.293 回答
-1

您不能像这样访问会话值

$order = $this->orders->get_order($this->session->userdata('orderid'));

您可以使用以下方法,它会为您正常工作

$orderid=$this->session->userdata('orderid');
$order = $this->orders->get_order($orderid);

**请记住在构造函数或此函数中加载会话库

$this->load->library('session');
于 2012-10-17T13:28:33.020 回答