2013-09-21 168 views
0

重定向後會話值丟失。我從pay_order方法重定向到do_payment方法。當我在do_payment方法中打印session值時,它返回false。只需簡單地調用do_payment方法即可顯示會話值。請幫助什麼是重定向的問題..?重定向會話在codeigniter中丟失

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方法中不可用。爲什麼?

+1

是的,Ritesh指出。而且 - 您正在將購物車內容放入會話中? – cartalot

+0

是的,我正在購物車項目中。 ?但不能在重定向之後獲得所有這些。 –

+0

@MuhammadDanish 方法'do_payment'顯示像這樣的會話'print_r($ this-> session-> userdata);'並且顯示結果 –

回答

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 
} 
+0

Ritesh我不會錯過分號。在提問期間被我錯誤地刪除。 –

+0

代碼現在工作正常。我已清除瀏覽器數據。可能是由於cookies發生了這種情況。但是,當我使用session_data作爲會話對象的名稱。它再次不存儲會話。 –

0

更改此:

$list['order_id'] = $order_id 

要這樣:

$list['order_id'] = $order_id; 

你有一個分號失蹤。由於重定向,您看不到任何錯誤。

+0

我不會錯過分號。在提問期間被我錯誤地刪除。 –