簡體   English   中英

登錄后如何使會話保持活動狀態(Codeigniter)

[英]How to keep a session alive after logging in (Codeigniter)

我們正在建立一個基於Codeigniter的網上商店。 產品在Codeigniters購物車類別的幫助下保存在購物車中。

訪客使用其帳戶登錄時,其購物車中已經存在的所有產品都將被刪除,因為用戶登錄時開始了新的會話。

我們現在如何才能將產品保存在購物車中?

if($query->num_rows() == 1)
    {
        $user = $query->row_array();
        $data = array(
                'userid' => $user['id'],
                'email' => $user['email'],
                'validated' => true
                );
        $this->session->set_userdata($data);

        return true;
    }

您必須在基礎中創建一個新表(例如購物車),並將該Chart類中的所有項目傳遞到該表中,並傳遞用戶ID,然后,當用戶登錄時,只需使用其ID和row ID查詢該表即可獲得所有產品。但是當用戶再見時,只需刪除基類中的行並取消設置購物車類

  $data = array(
                   'id'      => 'sku_123ABC',
                   'qty'     => 1,
                   'price'   => 39.95,
                   'name'    => 'T-Shirt',
                   'options' => array('Size' => 'L', 'Color' => 'Red'
                   'user_id  => '45')
                );

    $this->cart->insert($data);
    $chart = $this->cart->contents();
    $this->db->insert('shoppingcarts',$chart);

這只是一個簡單的例子,怎么做:)

如果用戶具有帳戶,則需要將數據保存在DB中。

如果用戶沒有帳戶,而您想保留其圖表(基於瀏覽器),則在用戶關閉窗口時無需銷毀會話。 您需要保持會話狀態,直到他清除圖表。 您可以在config.php文件上執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM