PHP & Others

serialize를 이용한 쿠키 갯수 제한없이 생성하기

페이지 정보

본문

뭐 늘 나오는 팁이긴한데...

 

일단 이리 저리 테스트 해보면 쿠키는 도메인당 30개 정도 구울 수 있게 되어있는 것 같다...

 

그리고 한개의 쿠키에 5,000자 남짓의 문자열을 넣을 수 있는데...

 

일단 30개라는 갯수가 많아보여도 쓰다보면 부족해질뿐이고...

 

뭐 암튼 오늘 누가 물어보길래 만들어준 간단한 class~

 

 class cookie
{
 var $cookie;
 var $key;
 var $name = 'cookiePack';
 var $time = 0;
 var $loc = '/';
 var $limit = 5000;

 function cookie()
 {
  $this->key = $this->name . $this->time;

  if(get_magic_quotes_gpc())
  {
   $cookie = stripslashes($_COOKIE[$this->key]);
  }
  else
  {
   $cookie = $_COOKIE[$this->key];
  }

  $this->cookie = unserialize($cookie);

 }

 function add($name, $value)
 {
  $this->cookie[$name] = $value;
 }

 function commit()
 {
  $serialized = serialize($this->cookie);

  if(strlen($serialized) > $this->limit)
  {
   return false;
  }
  else
  {
   setcookie($this->key, $serialized, $this->time, $this->loc);
   return true;
  }
 }

 function get($name)
 {
  return $this->cookie[$name];
 }
}

 

사용방법은....

 

// 생성

$cookie = new cookie();

 

// 쿠키 추가
$cookie->add('id1', 'value1');
$cookie->add('id2', 'value2');
$cookie->add('id3', 'value3');

 

// 쿠키 굽기
$cookie->commit();

 

// 쿠키 값 가져올땐 이렇게

echo $cookie->get('id3');

 

관련자료

등록된 댓글이 없습니다.
Today's proverb
"미안해" 라고 말할 때에는 상대방의 눈을 바라보면서 하라. (네팔 탄트라토템)