CI 묻고 답하기

제목 keep_flashdata 와 form_validation
글쓴이 팔랑 작성시각 2014/07/06 15:49:23
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 13291   RSS
쇼핑몰 장바구니 주문서작성에서 세션땜에 죽겠어요 ㅠㅠ 도와주세요

장바구니에서 상품을 선택하고 주문하기로 넘어갈 때 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;
 다음글 View를 구성하는 방법 (1)
 이전글 (return) 복귀주소값에 대해 궁금한점이 있습니다. (4)

댓글

변종원(웅파) / 2014/07/07 10:29:52 / 추천 0
set_flashdata 할때 배열말고 하나씩 넣어보세요.

그리고 keep 부분은 else 쪽에 넣으시구요.
팔랑 / 2014/07/08 22:24:09 / 추천 0
답변 감사합니다 ㅠㅠ
도저히 안되서 그냥 set_userdata 하고 지우는 방식으로 바꿨어요