Extra Form
PHP PHP 7.3
CMS Rhymix

안녕하세요. 사소한 문제긴한데 문득 생각나서 질문합니다.

 

기존 XE의 Javascript 에서 setCookie(name, value) 또는 setCookie(name, value, 0) 으로 만료기간을 지정하지 않은 쿠키를 생성하여 쓰고 있었는데요,,

 

Rhymix에서는 제대로 생성되지 않는 것을 발견하였습니다. 만약 만료일이나 기간을 지정하면 잘 생성됩니다.

 

 

일단 XE.cookie.set 이나 document.cookie 은  세션쿠키도 잘 생성되니 이걸로 교체해서 쓰고 있긴한데,

 

Javascript 에서 setCookie로 세션쿠키를 생성하지 못하는 것이 의도된 것인지, 오류인지 궁금합니다.

 

  • profile

    1. setCookie는 JS에 원래 있는 함수가 아니라 XE에서 추가한 것입니다. PHP의 setcookie 함수를 흉내낸 듯...

     

    2. XE에서는 document.cookie를 직접 조작하는 방식으로 구현되어 있고, XE.cookie.set이 생긴 후에도 기존 방식 그대로 방치되어 있습니다. 라이믹스에서는 호환성 차원에서 XE.cookie.set을 호출하는 것으로 대체하고 껍데기만 남겨놓았습니다. 이 때 expires 파라미터를 전달하는 방식에 버그가 있는 것 같군요.

     

    3. 버그가 수정될 때까지 XE.cookie.set을 사용해 주시기 바랍니다.

     

    4. 버그가 수정된 후에도 XE.cookie.set을 사용해 주시기 바랍니다.

  • profile profile
    • ehii
    • 질문기여자
    답변 감사합니다. ^^
  • profile

    혹시 이렇게 수정한 상태에서는 정상 작동하는지 확인해 주실 수 있을까요?

    https://github.com/rhymix/rhymix/blob/6774767/common/js/common.js#L1104-L1113

     

    (정상 작동하더라도 그냥 XE.cookie.set 쓰시기를 권장합니다. ㅎㅎ)

  • profile profile
    • ehii
    • 질문기여자
    네! 수정된 파일로 확인해보니 잘 생성됩니다.
    (ssl 전용쿠키사용에 따른 secure 옵션도 잘 전달됩니다.)
    감사합니다.
    계속 XE.cookie.set 쓰겠습니다 ㅎㅎ