BOARD

문제 해결

그누보드 팝업 '하루 안 보기' 기능 오류 해결 가이드

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 16회 작성일 26-10-01 17:57

본문

그누보드 팝업 '하루 안 보기' 기능 오류 해결 가이드

그누보드 4와 5 환경에서 팝업의 '하루 안 보기' 기능이 작동하지 않거나 쿠키가 정상적으로 생성되지 않을 때, 원인을 파악하고 코드를 수정하여 문제를 해결하는 방법을 안내합니다.

팝업 '하루 안 보기' 오류 확인 및 해결 방법

팝업의 '하루 안 보기' 기능이 작동하지 않는다면, 브라우저에 쿠키가 정상적으로 생성되고 있는지 확인하는 것이 문제 해결의 첫 단계입니다.

1. 가장 먼저 확인할 사항: 쿠키 생성 여부

브라우저의 개발자 도구(F12)를 사용하여 쿠키가 실제로 저장되는지 확인하십시오.

  • 확인 방법: 브라우저에서 F12를 눌러 개발자 도구를 엽니다. Application(또는 저장소) 탭의 Cookies 항목에서 해당 사이트 주소를 선택합니다.
  • 판단 기준: '하루 안 보기' 버튼을 클릭한 후 새로고침을 했을 때, 설정한 쿠키 이름이 목록에 나타나는지 확인합니다. 쿠키가 생성되지 않는다면 코드상의 쿠키 설정 함수 호출이 실패했거나 도메인 설정 문제일 가능성이 큽니다.

2. 주요 점검 및 수정 항목

팝업 스킨마다 파일 구조가 다르므로, 아래 항목을 순차적으로 점검하십시오.

  • 쿠키 설정 코드 확인: autoPOPUP.php 또는 newwin.inc.php 등 팝업 관련 파일에서 set_cookie 함수가 올바르게 호출되는지 확인합니다. 특히 쿠키 이름, 값, 유효 시간, 도메인 인자가 정확한지 확인하십시오.
  • G5COOKIEDOMAIN 설정: 그누보드 5 환경이라면 config.php 파일 내 G5_COOKIE_DOMAIN 설정이 비어있거나 잘못되어 있는지 확인하십시오. 도메인 설정이 일치하지 않으면 쿠키가 저장되지 않거나 공유되지 않을 수 있습니다.
  • 코드 수정 시 주의사항: 수정 전에는 반드시 원본 파일을 백업하십시오. 팝업 스킨마다 파일 구조와 네이밍이 다르므로, 무조건적인 코드 복사보다는 현재 사용 중인 스킨의 파일 내 코드 위치를 먼저 파악해야 합니다.

3. 문제 해결을 위한 다음 행동

  • 쿠키가 생성되지 않는다면 set_cookie 함수가 정의된 common.js 파일의 경로가 올바른지, 함수 호출 시 전달하는 인자값이 누락되지 않았는지 점검하십시오.
  • 팝업이 나타났다 사라지는 현상이 있다면, CSS나 JS 로직에서 팝업을 처음에 숨기지 않고 로드 후 쿠키를 확인하여 숨기는 방식인지 확인하십시오. 아예 처음부터 숨김 처리 후 쿠키가 없을 때만 보이게 하는 방식으로 로직을 변경하는 것이 좋습니다.

autoPOPUP.php 및 팝업 스킨 쿠키 코드 수정 방법

그누보드 팝업의 '하루 안 보기' 기능이 작동하지 않는 경우, 팝업 스킨 파일 내 쿠키 생성 함수(setCookie 또는 set_cookie)에 전달되는 인자값이 불일치하거나 누락되었을 가능성이 높습니다. 수정 전 반드시 원본 파일을 백업하십시오.

1. 쿠키 생성 코드 수정 (autoPOPUP.php 등)

팝업 스킨마다 파일 구조가 다르므로, 팝업을 호출하는 파일(예: autoPOPUP.php, popup_source.php)에서 쿠키 관련 코드를 확인합니다.

  • 수정 위치 확인: 팝업 호출 시 사용하는 팝업 이름과 쿠키 생성 시 사용하는 이름이 일치해야 합니다.
  • 코드 수정 예시 (G4 기준):
    • 수정 전: setCookie("zotta_popup_idx<?php echo $_GET['idx']?>", "done",<?=$arrPOP["cookie_days"]?>);
    • 수정 후: setCookie("zotta_popup_idx<?php echo $_GET['idx']?>", "done",$cookie_days);
    • 팝업 호출 스크립트(window.open)의 팝업 이름 인자값과 setCookie의 첫 번째 인자(쿠키명)가 동일하게 설정되어 있는지 확인하십시오.

2. 쿠키 도메인 설정 확인

'g5cookiedomain is not defined' 오류가 발생하거나 쿠키가 정상적으로 저장되지 않는다면, 그누보드 설정 파일의 도메인 정의를 확인해야 합니다.

  • 확인 위치: config.php 파일 내 G5_COOKIE_DOMAIN 설정값.
  • 조치: 해당 값이 비어있다면 도메인 환경에 맞게 설정합니다. (예: define('G5_COOKIE_DOMAIN', '.yourdomain.com');)

3. 적용 후 확인 절차

코드를 수정한 후에는 브라우저의 개발자 도구(F12)를 통해 실제 쿠키가 생성되는지 확인합니다.

  1. 브라우저에서 팝업이 있는 페이지를 새로고침합니다.
  2. 개발자 도구의 [Application] (또는 [저장소]) 탭을 클릭합니다.
  3. [Cookies] 항목에서 해당 도메인을 선택하고, '하루 안 보기' 버튼을 눌렀을 때 쿠키가 정상적으로 추가되는지 확인합니다.

주의: 팝업 스킨마다 파일 구조와 사용하는 함수명이 다를 수 있습니다. 위 내용은 일반적인 수정 가이드이므로, 사용 중인 스킨의 소스 코드를 먼저 분석하여 해당 함수가 정의된 위치를 파악하는 것이 중요합니다.

G5COOKIEDOMAIN 설정 오류로 인한 팝업 문제 해결

팝업의 '하루 안 보기' 기능이 작동하지 않거나 'g5cookiedomain is not defined' 오류가 발생하는 경우, 그누보드 설정 파일의 도메인 값이 비어있거나 쿠키 생성 함수에 전달되는 인자가 누락되었을 가능성이 높습니다. 다음 절차에 따라 확인 및 수정하십시오.

1. G5COOKIEDOMAIN 설정 확인

그누보드 5의 data/config.php 파일에서 쿠키 도메인 설정이 올바른지 확인해야 합니다. 이 값이 비어있으면 쿠키가 브라우저에 정상적으로 저장되지 않습니다.

  • 확인 위치: data/config.php 파일 내 G5_COOKIE_DOMAIN 항목
  • 조치: 해당 값이 도메인 형식(예: .yourdomain.com)으로 정확히 입력되어 있는지 확인합니다. 설정이 비어있다면 도메인을 입력하여 저장하십시오.
  • 참고: 서브 도메인 간 쿠키 공유가 필요한 경우 도메인 앞에 점(.)을 붙여 설정하는 것이 권장됩니다.

2. 팝업 스킨 내 set_cookie 함수 호출 점검

팝업 스킨 파일(주로 newwin.inc.php 또는 autoPOPUP.php)에서 쿠키를 생성하는 set_cookie 함수 호출부를 확인해야 합니다.

  • 확인 사항: set_cookie(ck_name, 1, exp_time, g5_cookie_domain); 코드에서 마지막 인자인 g5_cookie_domain이 정의되어 있는지 확인합니다.
  • 주의사항: 팝업 스킨마다 파일 구조와 변수명이 다를 수 있습니다. 만약 g5_cookie_domain 변수가 스킨 파일 내에서 인식되지 않는다면, 해당 변수가 전역으로 선언되어 있는지 확인하거나, 직접 도메인 문자열을 입력하여 테스트해 볼 수 있습니다.

3. 브라우저 개발자 도구로 쿠키 생성 확인

수정 후에도 기능이 작동하지 않는다면 브라우저의 개발자 도구를 통해 쿠키가 실제로 생성되는지 확인하십시오.

  • 방법: 브라우저에서 F12 키를 눌러 개발자 도구를 엽니다.
  • 확인: Application(애플리케이션) 탭의 Cookies 항목에서 '하루 안 보기' 버튼을 눌렀을 때 해당 도메인에 쿠키가 추가되는지 확인합니다.

4. 수정 전 주의사항

  • 백업 필수: 모든 코드 수정 전에는 반드시 원본 파일을 백업하십시오.
  • 캐시 삭제: 코드 수정 후 브라우저 캐시를 삭제하거나 시크릿 모드에서 테스트하여 변경 사항이 즉시 반영되도록 합니다.

팝업이 나타났다 사라지는 현상의 원인

팝업이 화면에 잠시 나타났다가 사라지는 현상은 주로 팝업의 호출 순서와 쿠키 확인 로직 간의 시간 차이로 인해 발생합니다.

주요 원인

  • 호출 순서의 문제: 팝업이 브라우저에 로드될 때, 쿠키를 확인하여 팝업을 숨기는 로직보다 팝업을 화면에 먼저 출력하는 코드가 우선 실행될 경우 발생합니다. 즉, '팝업 출력 → 쿠키 확인 → 팝업 숨김'의 순서로 동작하면서 사용자 눈에는 팝업이 떴다가 즉시 사라지는 것처럼 보이게 됩니다.
  • CSS 제어 방식: 팝업의 초기 상태가 display: block 등으로 설정되어 있고, 이후 자바스크립트가 쿠키를 검사하여 display: none으로 변경하는 과정에서 딜레이가 생기면 해당 현상이 두드러집니다.

확인 및 해결 방향

  1. 호출 순서 점검: 팝업 스킨 파일(예: newwin.inc.php 등)에서 팝업을 띄우는 함수가 호출되는 시점과 쿠키를 체크하는 스크립트의 위치를 확인하십시오. 팝업이 생성되기 전에 쿠키를 먼저 검사하여 팝업을 띄우지 않도록 로직을 조정해야 합니다.
  2. CSS 초기값 설정: 팝업 요소의 CSS를 초기부터 display: none으로 설정해두고, 쿠키가 없을 때만 자바스크립트로 display: block을 적용하는 방식으로 변경하면 팝업이 깜빡이는 현상을 방지할 수 있습니다.
  3. 개발자 도구 활용: 브라우저의 개발자 도구(F12)를 열고 [Network] 탭이나 [Console] 탭을 통해 스크립트 실행 순서와 오류 메시지가 발생하는지 확인하십시오.

팝업 '하루 안 보기' 기능 오류 해결 가이드

팝업의 '하루 안 보기' 기능이 작동하지 않는 경우, 쿠키 생성 로직과 도메인 설정의 불일치가 주원인입니다. 아래 순서에 따라 점검하십시오.

내 상황우선할 판단다음 행동
'하루 안 보기' 클릭 후 새로고침해도 팝업이 계속 뜸브라우저 쿠키 생성 여부 확인개발자 도구(F12)의 [Application] 탭에서 쿠키 생성 확인
쿠키는 생성되나 팝업이 사라지지 않음팝업 호출 및 숨김 로직 순서 확인팝업 출력 전 쿠키 존재 여부를 먼저 검사하도록 로직 수정
'G5COOKIEDOMAIN is not defined' 오류 발생설정 파일 내 도메인 정의 확인data/config.php 파일의 G5_COOKIE_DOMAIN 설정값 확인 및 입력
특정 스킨에서만 기능이 작동하지 않음스킨 파일 내 함수 인자값 불일치autoPOPUP.php 등 스킨 파일 내 set_cookie 호출 인자값 검증

실전 FAQ

Q. 수정 전 반드시 확인해야 할 점은 무엇인가요? 팝업 스킨마다 파일 구조와 함수명(setCookie vs set_cookie)이 다를 수 있습니다. 무작정 코드를 복사하기보다 현재 사용 중인 스킨 파일 내에서 해당 함수가 정의된 위치와 호출부를 먼저 파악하고, 반드시 원본 파일을 백업한 후 수정하십시오.

Q. 쿠키가 생성되지 않거나 공유되지 않는다면 어떻게 하나요? data/config.php 파일의 G5_COOKIE_DOMAIN 설정이 비어있는지 확인하십시오. 서브 도메인 간 쿠키 공유가 필요하다면 .yourdomain.com과 같이 앞에 점(.)을 붙여 설정해야 합니다. 설정 후에도 문제가 지속되면 브라우저의 개발자 도구(F12) [Application] 탭에서 쿠키가 정상적으로 저장되는지 확인하십시오.

Q. 팝업이 나타났다가 사라지는 현상은 왜 발생하나요? 팝업을 먼저 화면에 띄운 뒤 쿠키를 확인하여 숨기는 로직 순서 때문에 발생합니다. 팝업 요소의 CSS를 초기부터 display: none으로 설정하고, 쿠키가 없을 때만 자바스크립트로 보이게 하는 방식으로 로직을 변경하면 깜빡임 현상을 방지할 수 있습니다.

Q. G4와 G5의 쿠키 함수 차이가 있나요? G4는 주로 setCookie를 사용하며, G5는 보안이 강화된 set_cookie 함수를 사용합니다. G5 환경에서 set_cookie를 사용할 때는 암호화된 쿠키를 처리하므로 get_cookie 함수를 통해 값을 가져와야 합니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.