2014-12-03 4 views
2

Мне нужно назначить длинный массив сеансу codeigniter, но он не работает. Если я использую массив с тремя четырьмя элементами, то эта работа. Мой массив приведен ниже.Сеанс 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); 

Этот код не работает для меня. Пожалуйста, помогите мне, как я могу опубликовать большой массив в сеансе в кодеигниторе.

+0

Я бы использовал базу данных для хранения ваших сеансов: https://ellislab.com/codeigniter/user-guide/libraries/sessions.html Кроме того, похоже, что вы делаете тележку. Вы посмотрели на встроенный класс CI? https://ellislab.com/codeigniter/user-guide/libraries/cart.html – versalle88

ответ

0

По умолчанию CodeIgniter хранит данные сеанса в файле cookie, который имеет верхний предел 2KB-4KB в зависимости от браузера. Если вы пытаетесь сохранить более 4 Кбайт данных в сеансе, вы начнете сталкиваться с проблемами.

Самое легкое решение - store the session details in the DB. Документация сеанса Codeigniter подробно описывает процесс хранения сеанса в БД.

+1

Спасибо Vinod VT за ваш полезный ответ. Могу ли я шифровать такой массив. Я проверил, когда я пытаюсь зашифровать большой массив, а затем пропустить некоторые данные. –

+0

@hirasingh почему бы не серализовать массив? –

+0

@ DarylGill, большой массив может быть серализован? Я думаю, что это пропустит некоторые данные .... –

Смежные вопросы