【问题标题】:Codeigniter session not working with long arrayCodeigniter 会话不适用于长数组
【发布时间】:2015-02-01 00:04:28
【问题描述】:

我必须为 codeigniter 会话分配一个长数组,但它不起作用。如果我使用具有三个四元素的数组,那么这个工作。我的数组如下所示。

     $value['id']                   = $checkout_product['checkout']['id'];
     $value['user_id']              = $checkout_product['checkout']['user_id'];
     $value['name']                 = $checkout_product['checkout']['name'];
     $value['maker']                = $checkout_product['checkout']['maker'];
     $value['model']                = $checkout_product['checkout']['model'];
     $value['color']                = $checkout_product['checkout']['color'];
     $value['size']                 = $checkout_product['checkout']['size'];
     $value['slug']                 = $checkout_product['checkout']['slug'];
     $value['route_id']             = $checkout_product['checkout']['route_id'];
     $value['description']          = $checkout_product['checkout']['description'];
     $value['quantity']             = $checkout_product['checkout']['quantity'];
     $value['p_units']              = $checkout_product['checkout']['p_units'];
     $value['images']               = $checkout_product['checkout']['images'];
     $value['label_type']           = $checkout_product['checkout']['label_type'];
     $value['product_type']         = $checkout_product['checkout']['product_type'];
     $value['auction_id']           = $checkout_product['checkout']['auction_id'];
     $value['product_id']           = $checkout_product['checkout']['product_id'];
     $value['budget_min']           = $checkout_product['checkout']['budget_min'];
     $value['budget_max']           = $checkout_product['checkout']['budget_max'];
     $value['bid_start_date']       = $checkout_product['checkout']['bid_start_date'];
     $value['bid_end_date']         = $checkout_product['checkout']['bid_end_date'];
     $value['status']               = $checkout_product['checkout']['status'];
     $value['bid_id']               = $checkout_product['checkout']['bid_id'];
     $value['bidder_id']            = $checkout_product['checkout']['bidder_id'];
     $value['bid_product_id']       = $checkout_product['checkout']['bid_product_id'];
     $value['bid_date']             = $checkout_product['checkout']['bid_date'];
     $value['bid_qty']              = $checkout_product['checkout']['bid_qty'];
     $value['bid_amount']           = $checkout_product['checkout']['bid_amount'];
     $value['total_amount']         = $checkout_product['checkout']['total_amount'];
     $value['payable_amount']       = $checkout_product['checkout']['payable_amount'];
     $value['shipping_in']          = $checkout_product['checkout']['shipping_in'];
     $value['shipping_method']      = $checkout_product['checkout']['shipping_method'];
     $value['shipping_amount']      = $checkout_product['checkout']['shipping_amount'];
     $value['pro_type']             = $checkout_product['checkout']['pro_type'];
     $value['warranty_month']       = $checkout_product['checkout']['warranty_month'];
     $value['warranty_type']        = $checkout_product['checkout']['warranty_type'];
     $value['bid_note']             = $checkout_product['checkout']['bid_note'];
     $value['bid_status']           = $checkout_product['checkout']['bid_status'];
     $value['customer_id']          = $checkout_product['checkout']['customer_id'];
     $value['customer_username']    = $checkout_product['checkout']['customer_username'];
     $value['customer_firstname']   = $checkout_product['checkout']['customer_firstname'];
     $value['customer_lastname']    = $checkout_product['checkout']['customer_lastname'];
     $value['customer_email']       = $checkout_product['checkout']['customer_email'];
     $value['customer_image']       = $checkout_product['checkout']['customer_image'];

     $this->session->set_userdata('checkout', $value);

此代码不适用于我。请帮助我如何在 codeigniter 的会话中发布大数组。

【问题讨论】:

标签: php arrays codeigniter session


【解决方案1】:

默认情况下,CodeIgniter 将会话数据存储在 cookie 中,其大小上限为 2KB-4KB,具体取决于浏览器。 如果您尝试在会话中存储超过 4KB 的数据,您将开始遇到问题。

最简单的解决方案是store the session details in the DB。 Codeigniter 会话文档详细介绍了将会话存储在数据库中的过程。

【讨论】:

  • 感谢 Vinod VT 的有用回答。我可以加密这种数组吗?当我尝试加密大数组时,我已经检查过,然后跳过了一些数据。
  • @hirasingh 为什么不序列化数组?
  • @hirasingh “认为”您可以访问开发环境是没有意义的。试试看
  • @DarylGill 我以前检查过。这跳过了一些数据。当我试图取消序列化时,只打印了一半数组。
猜你喜欢
  • 2018-01-27
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 2018-12-02
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
相关资源
最近更新 更多