[php] 쿠키유지시간 개념이 시스템마다 일정하지 않은 이유...
지금부터 저의 글은 제가 모두 직접 확인하고 여러번 반복해본 사실입니다.
정말 이상한 현상이 발견되었습니다. 저의 지식으로는 도저히 설명할수 가 없습니다.
우선 php쿠키에 대해 제가 알고있는 상식은
유지시간을 0로하면 쿠키는 실제로 파일로 생성되지는 않는다는것!
그리고 유지시간을 time()+0 로 하면 그때부터는
time()+1
time()+2
.
.
그 다음부터는 쿠키파일이 생성됩니다.
또한 유지시간 time()+a에서 +a값은 디폴트가 몇백초이기 때문에 (물론 이부분은 서버마다
다를수 있다고 생각합니다.)
설령 time()+1이라고 잡았더라도 실제로 파일은 1초가 아니라 몇백초 후에나 그효력을
상실합니다.
이상은 제가 저희 집 컴터에서 윈98에서 pws를 설치해서 직접확인해본 결과입니다.
오늘 학교전산실에서 해보니..
setcookie('NOTICE_OPENED', $NOTICE_OPENED.'|'.$no , time()+336 , '/');
이와같은 함수로 쿠키를 생성하면 쿠키가 생성이 되는것은 cookie폴더에서 확인할 수 있습니다.
setcookie('NOTICE_OPENED', $NOTICE_OPENED.'|'.$no , time()+335 , '/');
이와 같이 하면 쿠키가 생성이 되지 않습니다.
재부팅후에는
setcookie('NOTICE_OPENED', $NOTICE_OPENED.'|'.$no , time()+338 , '/');
이와같은 함수로 쿠키를 생성하면 쿠키가 생성이 되는것은 cookie폴더에서 확인할 수 있습니다.
setcookie('NOTICE_OPENED', $NOTICE_OPENED.'|'.$no , time()+337 , '/');
이와 같이 하면 쿠키가 생성이 되지 않습니다.
커트라인이 생겨버립니다.
첫째 , 이부분이 이상합니다 왜 이런 현상이 나타나는지.. 그리고 그 커트라인조차 일정하지
않는지 정말 모르겠습니다.
둘째, 더욱 이상한것은 쿠키가 생성되지 않는 time()+0 ~ time()+335 or 336 이부분에서는
쿠키가 제역할을 하지 못한다는것입니다.
그리고 쿠키가 처음 생성되는 time()+338 이시각은
쿠키의 실제 유효시간이 338초가 아니라 0초이며
예를들어 time()+348은 유효시간이 348초가 아니라 10초입니다.
10초뒤에는 게시판의 카운트가 올라가는것을 볼 수 있습니다.
정말 이상합니다
[앞서 말씀드린 디폴트타임과 관련이 있는것이라고 생각했었습니다.]
php관련 실력있으신 여러분들의 답변을 기대합니다.
두가지 답변부탁드립니다.
phpschool 에서 답변을 찾는게 더 빠르지 않을까요?물론 여
phpschool 에서 답변을 찾는게 더 빠르지 않을까요?
물론 여기에도 많은 고수분들이 계시겠지만...
ps: 집에와서 해보니 앞서 말씀드린 쿠키생성 경계값이 54이군요..
ps: 집에와서 해보니 앞서 말씀드린 쿠키생성 경계값이 54이군요.. time()+55부터는 생성이
됩니다. 물론 +55는 0초로 보는거 같습니다. 또한 재부팅후에는 경계값이 55가 되어있었습니다.
추측하건데.. 경계값은 계속바뀌며.. 현재시각과 관련이 있는거 같습니다. 정말 이상합니다.
전에는 안그랬는데 서버에서 어떠한 변화가 있었는지 모르겠습니다.
리눅스서버이고 레드헷9.0입니다. 학교 동아리서버입니다.
댓글 달기