[php] 쿠키유지시간 개념이 시스템마다 일정하지 않은 이유...

gyxor의 이미지

지금부터 저의 글은 제가 모두 직접 확인하고 여러번 반복해본 사실입니다.

정말 이상한 현상이 발견되었습니다. 저의 지식으로는 도저히 설명할수 가 없습니다.

우선 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 에서 답변을 찾는게 더 빠르지 않을까요?

물론 여기에도 많은 고수분들이 계시겠지만...

gyxor의 이미지

ps: 집에와서 해보니 앞서 말씀드린 쿠키생성 경계값이 54이군요.. time()+55부터는 생성이
됩니다. 물론 +55는 0초로 보는거 같습니다. 또한 재부팅후에는 경계값이 55가 되어있었습니다.
추측하건데.. 경계값은 계속바뀌며.. 현재시각과 관련이 있는거 같습니다. 정말 이상합니다.
전에는 안그랬는데 서버에서 어떠한 변화가 있었는지 모르겠습니다.
리눅스서버이고 레드헷9.0입니다. 학교 동아리서버입니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.