0

codeigniter を使用して e コマース サイトを構築しています。ユーザーがチェックアウト前に配送情報を入力するコントローラーのメソッドがあり、メソッドは配送情報を保存し、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 に答える