0

私はコードイグナイターが初めてです。ここでは、商品のチェックアウトにショッピング カートを使用しています。製品をカートに追加すると、最初の 3 つの製品で機能し、製品を追加した後は 4 番目の製品と見なされます。3 つの製品の後に製品をカートに追加すると、既存の 4 番目の製品が置き換えられます。しかし、カートに最初の3つの製品のみが表示され、4番目の製品は表示されず、カートに4つ以上の製品を追加することもできません。カートの更新にjquery ajaxを使用しています

jquery ajaxコード

$('.addcart').click(function(){
    var proid=$(this).attr('id');           
    $.post('<?php echo base_url()?>productajax',{typ:'addtocart',proid:proid},function(data){           

    })
    return false;
})

product add to cart code



 $proid=$this->input->post('proid');
                    $this->db->where('pro_id',$proid);
                    $data=$this->db->get('product')->result();
                    foreach ($data as $pro)
                    {
                        $proname=$pro->pro_name;
                        $price=$pro->s1price;

                        $proimg=$pro->image_name;
                        $nwt=$pro->case_netweight;
                        $gwt=$pro->case_grossweight;
                        $cbm=$pro->cbm;
                    }

                    $propriceinr =round($price + round(($price * $this->session->userdata('user_margin'))/100,2));          

                    $dat = array(
                   'id'      => $proid,
                   'qty'     => 1,
                   'price'   => $propriceinr,
                   'name'    => $proname,
                   'options' => array('cbm' => $cbm, 'nwt' => $nwt,'gwt'=>$gwt,'image' => $proimg ,'price'=>$price,)
                );              
                    $this->cart->insert($dat);

config.php

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;

3 つの製品を挿入した後で製品カートを更新しない理由がわかりません。誰でもこの問題のガイダンスを教えてください。事前に感謝

4

2 に答える 2

2

設定してください

$config['sess_use_database'] = FALSE;

$config['sess_use_database'] = TRUE;あなたのにconfig.php

現在、商品の詳細は最大4kbのCookieに保存されています。 有効にすることによって。
$config['sess_use_database'] = TRUE;

この機能を使用すると、データベース テーブルに情報を挿入できます。

$config['sess_table_name'] = 'ci_sessions';.

それがあなたのために働くことを願っています

ここにテーブルがない場合ci_sessions、そのクエリは次のとおりです。

 CREATE TABLE `ci_sessions` (
 `session_id` varchar(40) NOT NULL DEFAULT '0',
 `ip_address` varchar(16) NOT NULL DEFAULT '0',
 `user_agent` varchar(50) NOT NULL,
 `last_activity` int(10) unsigned NOT NULL DEFAULT '0',
`user_data` text NOT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
于 2013-06-20T12:09:32.557 に答える
0

application/config/config.php で csrf 保護を無効にしてみてください

$config['csrf_protection']  = FALSE;

次に、ajax 呼び出しが機能し始めたら、再度有効にして、ci_csrf_token 変数を ajax 呼び出しに追加します。

于 2013-06-20T10:10:00.863 に答える