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
해가 들면 어떻고, 바람이 불면 어떻고, 눈이 오면 어떠랴. 해가 들어주어도 고맙고, 바람이 불어주어도 고맙고, 눈이 와주어도 고마울 뿐. 그렇다, 고맙지 않은 것이 없다. 밤은 밤이어서 고맙고, 새벽은 새벽이어서 고맙고, 낮은 낮이어서 고맙다. 아, 고마운 삼라만상이여! (정채봉)