3

在此处输入图像描述

我在会话中添加订单 ID 和购物车项目。如果我在会话中添加 2 个购物车项目。它工作正常。如果我在会话中添加 3 件或更多件购物车。重定向后的所有数据都丢失了。控制器的名称是结帐。

function pay_order($order_id){
    $this->load->helper('url');
    $this->load->library('session');
    $this->load->library('cart');
    $this->load->helper('url');
    $this->load->helper('form');
    $output = $this->cart->contents();
    $output = $this->sort_array($output);
    $list['data'] = $output;
    $list['order_id'] = $order_id;
    $this->session->set_userdata('ses', $list);
    echo '<pre> Session Before Redirect';
    print_r($this->session->userdata('ses'));// all data present.
    redirect('checkout/do_payment');
}
function do_payment(){
    $this->load->helper('url');
    $this->load->helper('url');
    $this->load->library('session');
    $this->load->library('cart');
    $this->load->helper('url');
    $this->load->helper('form');

    $this->load->library('session');
    $this->load->model('customer_model');


    echo 'After redirect<pre>';
    print_r($this->session->userdata('ses'));// does not get any data here.
 }

还附加了重定向之前的快照。

4

5 回答 5

4

您在 application/config/config.php 中的配置是什么

如果是 $config['sess_use_database'] = FALSE;

这意味着您将会话信息存储在 cookie 中,cookie 限制为 4kb。大概这就是问题所在。在数据库中存储大量数据。

http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

于 2013-09-30T23:25:13.223 回答
1

请删除以下行并尝试

 $this->load->model('customer_model');
于 2013-09-30T23:14:51.427 回答
1

我有同样的问题并通过禁用会话用户代理检查来解决它:

 $config['sess_match_useragent']=FALSE
于 2017-03-01T06:33:08.013 回答
0

可能是 php/codeigniter 版本问题,请使用 php 5.3 等较低版本或升级您的 codeigniter 版本,您的问题将得到解决。

于 2018-08-13T19:40:02.807 回答
0

我通过更新 codeigniter 代码会话管理器中的会话写入和读取解决了这个问题。

system/libraries/Session/session.php

转到第 281 行

ini_set('session.name', $params['cookie_name']); 

用 session.id 替换 session.name

ini_set('session.id', $params['cookie_name']);
于 2021-01-13T10:58:05.163 回答