쇼핑몰 장바구니 주문서작성에서 세션땜에 죽겠어요 ㅠㅠ 도와주세요
장바구니에서 상품을 선택하고 주문하기로 넘어갈 때 flashdata로 세션을 만들고 넘겨줍니다.
(이건 장바구니 테이블의 고유번호)
$this->session->set_flashdata('purchase', array());
다음, 주문서작성에서 flashdata 를 keep 해주고 purchase 세션을 읽어서 주문할 상품을 로드합니다.
그리고 form_validation
function purchase() {
$this->session->keep_flashdata('purchase');
$data['item'] = $this->session->flashdata('purchase');
$data['result'] = $this->store_model->get_cart($data['item']);
$this->load->library('form_validation');
if ($this->form_validation->run() == false)
{
// views - 주문서작성폼
}
else
{
//DB입력
$data['post'] = $this->input->post();
$thankyou['traceno'] = $this->store_model->order_insert($data);
if ($thankyou['traceno'])
{
//장바구니삭제
$this->store_model->cart_delete($data['item']); //여기서 $data['item'] 이 사라집니다!
//기타처리...
}
}
}
$this->form_validation->run() 부분에 keep_flashdata 를 넣어봤는데도 안되고요...
뭐가... 잘못됐나요? 세션설정은 다음과 같습니다.
$config['sess_cookie_name'] = 'session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'cisessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 300;
그리고 keep 부분은 else 쪽에 넣으시구요.