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');

 

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
“무릇 물이란 지세를 따라 흐르되 작은 틈도 놓치지 않고 적시니 지혜를 갖춘 자와 같고, 움직이면서 아래로 흘러가니 예를 갖춘 자와 같으며, 어떤 깊은 곳도 머뭇거리지 않고 들어가니 용기를 가진 자와 같고 장애물이 막혀서 갇히면 고요히 맑아지니 천명을 아는 자와 같으며, 험한 곳을 거쳐 멀리 흐르지만 끝내 남을 허물어뜨리는 법이 없으니 덕을 가진 자와 같다. 천지는 이것으로 이루어지고, 만물은 이것으로 살아가며, 나라는 이것으로 안녕을 얻고, 만사는 이것으로 평안해지며, 만물은 이것으로 바르게 되는 것이다. 이것이 지혜로운 자가 물을 좋아하는 이유이다.” (한영, <<한시외전>>)