Q&A

cookie 값을 여러개 가져우는 방법 질문드립니다.

2021.01.22 10:12
667
0
CMS/프레임워크 Rhymix 2.0
개발 언어 PHP 7.0
문제 페이지 주소 비공개 (작성 후 5일 경과)

팝업 위젯에서 설정한 시간동안 팝업을 안보이게 할려고 "1일 동안 닫기"를 구현하는데

팝업이 2개 이상인 경우 각각 시간을 다르게 주고 싶어서 아래와 같이 코드를 적용할려고 하는데요

 

{@ $wi = $widget_info; 
$cno = $wi->cookie_no; 
$pno = $wi->popup_no; }

 

{@ if($_COOKIE['PopUp_Close{$pno}'] == '{$cno}') return;}

 

<script>
function set_PopUpCookie_{$pno}() {
    var expire = new Date();
    expire.setDate(expire.getDate()+{$wi->closeday});
    xSetCookie('PopUp_Close{$pno}', '{$cno}', expire);
    xHide('PopUp {$pno}');
}
</script>

 

{@ if($_COOKIE['PopUp_Close{$pno}'] == '{$cno}') return;}에서 {$pno}, {$cno} 를 사용할 수가 없네요

{ } 만 들어가면 서버 에러를 뿜어내내요,

이 부분을 다르게 적용하는 방법이 있을까요?

팔공산 Lv. 5

댓글 2

  • 2021.01.22 10:19 #1513388

    {@ } 를 사용해서 PHP 문법이 적용되는 구간에 들어와 있으므로

    그 안에서 또 템플릿 문법을 사용하실 필요도 없고, 사용하셔서도 안 됩니다.

    여기서는 그냥 PHP 문법을 사용하시면 됩니다.

     

    {@ if($_COOKIE['PopUp_Close'.$pno] == $cno) return;}

     

    반면, 아랫부분의 스크립트는 PHP 문법이 아니라 자바스크립트 문법이 적용되는 구간이므로

    템플릿 문법 { } 을 사용하셔도 에러가 나지 않는 것입니다.

  • 2021.01.22 11:22 #1513426
    감사합니다.
    잘 작동하네요.
    잘 작동하니 속이 후련하네요~~~~👍