Q&A

댓글 8

  • 2021.08.16 06:29 #1602473

    쿠키나 세션은 index.php 읽어들일때부터 이미 가지고 있습니다.

    세션은 서버쪽에 데이터가 있고, 쿠키는 브라우저쪽에 있습니다.

    그 값들을 서로 서버와 브라우저간의 통신하는 것인데 그 값들이 어느 콜포지션이냐에 따라 로딩이 안된다거나 틀리거나 그렇지 않아요.

     

    index.php 실행시점부터 이미 데이터는 다 들어가있지요.

     

    뭔가 셋이 안되고 잇다면 그건 어딘가 세팅이 잘못되어있다는 뜻인 것 같아요.

     

    세션이나 쿠키값은 언제든지 값이 변하거나 왼만하면 안변하니까요.(세션은 끊어지면 없어지긴하지만)

  • 2021.08.16 06:37 #1602479

    쿠키 생성이 안되는 것에 관한 질문이에요.

    라이믹스 코어의 쿠키는 잘 생성되고 있습니다.

    어딘가의 세팅은 무얼 말씀하시는지 알 수 있을까요?

  • 2021.08.16 08:51 #1602511
    네! 시점관련해서 해당 시점에서 안되냐고 물어보셔서 시점이 아무런 의미 없다 라는 뜻으로 서론이 길었습니다.

    setCookie('CheckOnceRedirect', 'YES', $calc_time, '/');

    에서 세팅값이 잘못된 것이 아닌것인지 말씀드렸던 것 입니다!

    아래 기진님의 답변으로 해결 잘되신 것 같네요.
  • 2021.08.16 07:31 #1602484
    https://github.com/rhymix/rhymix/blob/master/common/framework/session.php#L1163

    여기 관련 코드가 있는 것 같은데요. php 버전 분기가 있고 한데
    php 7.2 의 라이믹스에서 제가 사용한 setCookie('CheckOnceRedirect', 'YES', $calc_time, '/'); 잘못된 사용이 있는지 왜 안될까요.

    혹시 몰라서 레이아웃에 옮겨서
    {@
    }

    안에 넣어서 해 봐도 안되는 것 같더군요.
  • 2021.08.16 07:49 #1602488

    일단 가장 흔한 시나리오는 아래의 두 가지입니다.

     

    1. 쿠키를 굽기 전에 이미 내용이 출력되어서 더이상 쿠키를 구울 수 없는 상황인 경우

    2. $calc_time에 유닉스 타임스탬프가 아닌 상대값(15분, 24시간, 30일 등)을 넣으신 경우

  • 2021.08.16 07:54 #1602493

    if ($called_position === 'before_module_init' )
    {
    $end_time = strtotime(date("Y-m-d", strtotime("+1 day") ) ." 00:00:00 ");
    $now_time = time();
    $calc_time = $end_time - $now_time;
    setCookie('CheckOnceRedirect', 'YES', $calc_time, '/');
    }

    1번에 해당 되는 케이스 인가요?

     

    $calc_time 값은 유닉스타임으로 확인했습니다.

  • 2021.08.16 08:03 #1602498

    두 개의 유닉스 타임스탬프를 생성한 후, 둘의 차이를 계산하여 $calc_time에 담으셨으니
    $calc_time은 유닉스 타임스탬프가 아니라 그냥 몇만 초에 불과하겠지요.

    요즘 기준으로 정상적인 유닉스 타임스탬프라면 16억 초가 넘습니다.
    차이를 계산하지 말고 $end_time을 그대로 넣으셔야 합니다.

  • 2021.08.16 08:05 #1602503

    아... 방금 먼저 달아주신 댓글 보고 눈치를 챘습니다.

    저게 절대 시간을 넣어주어야 하는것이군요. 이제 해결할 수 있을 것 같습니다. 감사합니다!!!

    만료시간에 넣는 값이 현재시간에 얼마나 유지되는 시간이냐의 값인줄 착각했네요.