개발 Q&A

제목 쿠키질문입니다
글쓴이 템포 작성시각 2012/11/16 14:47:15
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 18280   RSS
한 글 목록을 선택했을 때 a태그로 넘겨지기 때문에
그 a태그 안에 class를 줘서 해당 id번호를 받아서 ajax로 넘긴 후
컨트롤러에서 쿠키를 저장합니다.

쿠키 저장까진 되는데, 그.. 쇼핑몰에서 보는 것 처럼 오른쪽 끝 부분에 오늘 본 상품? 이라면서 이렇게 뜨잖아요
그것 처럼 만들고 싶은데, 지금 쿠키에 값이 하나밖에 안들어가네요
제가 잘못넣고있는건지...

쿠키를 저장해주는 컨트롤러쪽의 소스인데 맨 처음에 쿠키를 가져와서

cookieArray가 있으면 배열을 합쳐서 set시키는데요 방법이 잘못된건가요??

$cookieArray = get_cookie('cookie_name');
  $cookieArray = unserialize($cookieArray);
  
  if(is_array($cookieArray))
  {
   $return = TRUE;
   foreach($cookieArray as $key => $value)
   {
    if($value == $this->input->post('hhhh');)
    return FALSE;
   
   }
  }

추가 질문입니다.

쿠키저장할때 포스트값으로 넘어온 A1값 : B1값 이렇게 저장되게 했는데
처음엔 저장 잘되는듯했다가 시간이지나니깐 A1 값이 0으로 바뀌어버립니다. 배열첫번째 값으로
이부분은 왜이런건지 혹시 .. 아시는 분 계신가요?

 다음글 throw new \Exception 에서 (1)
 이전글 [초보]모달창 안에서 스크립트사용 (4)

댓글

변종원(웅파) / 2012/11/16 15:47:53 / 추천 0
소스상에는 기존 쿠키의 내용에 새 내용을 합치는 부분이 없는데요?

쿠키 만료시간 늘려보세요.
템포 / 2012/11/16 16:17:24 / 추천 0
웅파님 답변 감사합니다.
합치는 부분은

$array      = ($cookieArray) ? array_merge($cookieArray, array($a => $this->input->post('hhhh'))) : array($a => $this->input->post('hhhh');
$valueArray = serialize($array);


$cookie = array(
                       'name'   => 'today_see',
                       'value'  => $valueArray,
                       'expire' => '60',
                       ...
        );

이렇게 되어있습니다. 시간은 테스트하기 편하게 하기 위해서 60초로 지정해놨었구요
시간을 3600으로 늘려봐도 동일합니다.

get_cookie해서 값을 찍었을 때 나오는 값은
( [0] => test1 [0530057] => test2 ) 이렇습니다

변종원(웅파) / 2012/11/16 16:38:07 / 추천 0

배열이 길어서 잘리는건 아닐런지... 쿠키 크기 제한이 있습니다. serialize화 하면서 길어지는건 아닌지 모르겠네요.

완전한 소스가 아니라서 파악하기가 힘드네요. ㅋ

만드는 곳에서 $array 찍어보세요. 합쳐지는지...

그리고 만드는 쿠키명은 today_see 인데 가져오는 곳에서는 cookie_name 으로 되어 있네요.

템포 / 2012/11/16 16:46:29 / 추천 0
답변 감사합니다. 옮기다보니 cookie_name으로 바뀌었나보네요

그런데 처음 배열부터 저렇게 들어가다보니...

처음 데이터가 들어갈 땐 [0530057] => test2 이렇게 들어가는데 페이지 새로고침 하고 나거나
데이터를 한번 더 넣고 나면 처음 부분은 [0]부분으로 바뀌어버리네요

완전한 소스라고 말할 수 도 없는게..이 부분이 다입니다.ㅜ

set_cookie할 때 domain이나 그런부분은 빼구요