0

重定向后会话值丢失。我正在从 pay_order 方法重定向到 do_payment 方法。当我在 do_payment 方法中打印会话值时,它返回 false。只需简单调用 do_payment 方法即可显示会话值。请帮助重定向..有什么问题?

function pay_order($order_id)

{
                 $this->load->helper('url'); //loading url helper    
                 $this->load->library('session');//loading session lib
                 $this->load->library('cart'); //loading cart lib
                 $this->load->helper('form');//loading form helper
                 $output = $this->cart->contents();// getting data from cart.
                 $output = $this->sort_array($output);// sorting the array
                 $list['data'] = $output;
                 $list['order_id'] = $order_id;
                 $this->session->set_userdata('abc', $list);// setting the session
                 redirect('checkout/do_payment'); // redirecting to do_payment

    }
    function do_payment() 
    {

             $this->load->helper('url'); //loading url helper
             $this->load->library('session'); //loading session library
             $arr = $this->session->userdata('abc');// getting session data in $arr
             var_dump( $arr );// return false value.
             //$this->load->view('order/pay_through_gateway');
    }

当我从 pay_order 方法重定向时,会话在 do_payment 方法中不可用。为什么?

4

2 回答 2

1

有问题,检查pay_order()你设置会话的方法中的行。

$list['order_id'] = $order_id
$this->session->set_userdata('abc', $list);// setting the session

在该行之前,您错过了分号。一切看起来都很好。

更新:

我认为没有错误,在会话中存储值时检查是否有空值。并通过方法中的以下代码检查值do_payment()

function do_payment(){
    $this->load->library('session'); //loading session library
    $arr = $this->session->userdata('abc');// getting session data in $arr
    print_r( $arr );// print the $arr content
}
于 2013-09-21T18:01:06.750 回答
0

改变这个:

$list['order_id'] = $order_id

对此:

$list['order_id'] = $order_id;

你少了一个分号。由于重定向,您不会看到任何错误。

于 2013-09-21T18:50:51.967 回答