【问题标题】:codeigniter pass array in session and retrieve会话中的codeigniter传递数组并检索
【发布时间】:2013-07-01 01:53:48
【问题描述】:

我想在 codeigniter 会话中传递数组并想在另一个函数中检索它下面是我将数组传递给会话的代码

$deliveryData = array(
                    'User_ID' => $this->input->post('User_ID'),
                    'Order_dArea' => $this->input->post('Order_dArea'),
                    'Order_dAddress' => $this->input->post('Order_dAddress'),
                    'Order_PMethod' => $this->input->post('payment_mode'),
                    'Order_dMdate' => $Order_modifieddate
                    );

            $this->session->set_userdata('deliverdata', $deliveryData);

我以这种方式检索会话

$getDeliveryData = $this->session->all_userdata('deliverdata');

我得到了这个输出

array(12) { ["session_id"]=> string(32) "d369b835203b7da7f9c27e93e6444bd2" ["ip_address"]=> string(9) "127.0.0.1" ["user_agent"]=> string(65) "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0" ["last_activity"]=> int(1372851183) ["user_data"]=> string(0) "" ["cartreturn"]=> string(1) "1" ["username"]=> string(5) "admin" ["is_loggedin"]=> int(1) ["login"]=> string(5) "aqeel" ["password"]=> string(10) "ictbeam321" ["cart_contents"]=> array(4) { ["d3d9446802a44259755d38e6d163e820"]=> array(6) { ["rowid"]=> string(32) "d3d9446802a44259755d38e6d163e820" ["id"]=> string(2) "10" ["qty"]=> string(1) "1" ["price"]=> string(4) "1200" ["name"]=> string(11) "soup item 1" ["subtotal"]=> int(1200) } ["c51ce410c124a10e0db5e4b97fc2af39"]=> array(6) { ["rowid"]=> string(32) "c51ce410c124a10e0db5e4b97fc2af39" ["id"]=> string(2) "13" ["qty"]=> string(1) "1" ["price"]=> string(4) "1400" ["name"]=> string(11) "soup item 2" ["subtotal"]=> int(1400) } ["total_items"]=> int(2) ["cart_total"]=> int(2600) } ["deliveryfee"]=> int(182) } 

现在我想获取原始数组值以便我可以使用它

【问题讨论】:

标签: arrays codeigniter session


【解决方案1】:
//first page
$menu_records=array();
$this->session->set_userdata('logged_in', $menu_records);

//second page
var_dump($this->session->userdata['logged_in']);

【讨论】:

    【解决方案2】:

    您正在获取所有会话数据,而您只想要其中的一部分。而不是做

    $getDeliveryData = $this->session->all_userdata('deliverdata');
    

    我认为你只需要这样做

    $getDeliveryData = $this->session->userdata('deliverdata');
    

    【讨论】:

    • 我想存储数组数据,而 $this->session->userdata('deliverdata') 只存储一条记录,请您指导我更详细地了解您可以从我的 Q 中获取我的方案跨度>
    • 如果你传递一个你正在做的数组,你可以存储多个值。查看 $getDeliveryData = $this->session->userdata('deliverdata'); 的结果是什么是
    【解决方案3】:

    试试这个:

    <?php
        $deliveryData = array(
                    'User_ID' => $this->input->post('User_ID'),
                    'Order_dArea' => $this->input->post('Order_dArea'),
                    'Order_dAddress' => $this->input->post('Order_dAddress'),
                    'Order_PMethod' => $this->input->post('payment_mode'),
                    'Order_dMdate' => $Order_modifieddate
                    );
        $this->session->set_userdata('deliverdata', $deliveryData);         #to set the session with the above array
    
        ### for retrieving the session values ###
        $deliveryData   = $this->session->userdata('deliverdata');          #will return the whole array
    
        ### for retrieving any single element from the session ###
        $userid         = $this->session->userdata['deliverdata']['User_ID'];
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多