From 3f32ecd3e62de4eb1bdcd3dedac484baed98290d Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 16 Apr 2026 04:01:37 +0000 Subject: [PATCH] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=8B=9C=20=EC=95=BD=EA=B4=80=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=EB=82=B4=EC=97=AD=20=EB=A1=9C=EA=B7=B8=EA=B0=80=20?= =?UTF-8?q?=EB=A7=A4=EB=B2=88=20=EC=8C=93=EC=9D=B4=EB=8A=94=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 수신설정 섹션이 폼에 표시되지 않는 경우(cf_use_promotion 미사용, 휴대폰 미사용, 아이코드 미사용 등) _default 변수가 undefined 상태가 되어 비교 시 항상 "변경됨"으로 판단되던 문제를 해결. _default 변수를 명시적으로 초기화하고, 폼에 없는 항목은 기존 DB 값을 유지하도록 수정. Co-Authored-By: Claude Opus 4.6 (1M context) --- bbs/register_form_update.php | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/bbs/register_form_update.php b/bbs/register_form_update.php index 6bfabba6d..18dbaab4b 100644 --- a/bbs/register_form_update.php +++ b/bbs/register_form_update.php @@ -77,6 +77,20 @@ $mb_addr_jibeon = preg_match("/^(N|R)$/", $mb_addr_jibeon) ? $mb_addr_jibeon : ' $mb_marketing_agree = isset($_POST['mb_marketing_agree']) ? trim($_POST['mb_marketing_agree']) : "0"; $mb_thirdparty_agree = isset($_POST['mb_thirdparty_agree']) ? trim($_POST['mb_thirdparty_agree']) : "0"; +// _default 변수 명시적 초기화 (폼에 해당 섹션이 없으면 null) +$mb_marketing_agree_default = isset($_POST['mb_marketing_agree_default']) ? trim($_POST['mb_marketing_agree_default']) : null; +$mb_mailling_default = isset($_POST['mb_mailling_default']) ? trim($_POST['mb_mailling_default']) : null; +$mb_sms_default = isset($_POST['mb_sms_default']) ? trim($_POST['mb_sms_default']) : null; +$mb_thirdparty_agree_default = isset($_POST['mb_thirdparty_agree_default']) ? trim($_POST['mb_thirdparty_agree_default']) : null; + +// 폼에 수신설정 섹션이 없는 경우 기존 DB 값 유지 (회원정보 수정 시) +if ($w == 'u') { + if ($mb_marketing_agree_default === null) $mb_marketing_agree = $member['mb_marketing_agree']; + if ($mb_mailling_default === null) $mb_mailling = $member['mb_mailling']; + if ($mb_sms_default === null) $mb_sms = $member['mb_sms']; + if ($mb_thirdparty_agree_default === null) $mb_thirdparty_agree = $member['mb_thirdparty_agree']; +} + run_event('register_form_update_before', $mb_id, $w); if ($w == '' || $w == 'u') { @@ -386,28 +400,28 @@ if ($w == '') { // 마케팅 목적의 개인정보 수집 및 이용 $sql_marketing_date = ""; - if ($mb_marketing_agree_default !== $mb_marketing_agree) { + if ($mb_marketing_agree_default !== null && $mb_marketing_agree_default !== $mb_marketing_agree) { $sql_marketing_date .= " , mb_marketing_date = '".G5_TIME_YMDHIS."' "; $agree_items[] = "마케팅 목적의 개인정보 수집 및 이용(" . ($mb_marketing_agree == 1 ? "동의" : "철회") . ")"; } // 광고성 이메일 수신 $sql_mailling_date = ""; - if ($mb_mailling_default !== $mb_mailling) { + if ($mb_mailling_default !== null && $mb_mailling_default !== $mb_mailling) { $sql_mailling_date .= " , mb_mailling_date = '".G5_TIME_YMDHIS."' "; $agree_items[] = "광고성 이메일 수신(" . ($mb_mailling == 1 ? "동의" : "철회") . ")"; } // 광고성 SMS/카카오톡 수신 $sql_sms_date = ""; - if ($mb_sms_default !== $mb_sms) { + if ($mb_sms_default !== null && $mb_sms_default !== $mb_sms) { $sql_sms_date .= " , mb_sms_date = '".G5_TIME_YMDHIS."' "; $agree_items[] = "광고성 SMS/카카오톡 수신(" . ($mb_sms == 1 ? "동의" : "철회") . ")"; } // 개인정보 제3자 제공 $sql_thirdparty_date = ""; - if ($mb_thirdparty_agree_default !== $mb_thirdparty_agree) { + if ($mb_thirdparty_agree_default !== null && $mb_thirdparty_agree_default !== $mb_thirdparty_agree) { $sql_thirdparty_date .= " , mb_thirdparty_date = '".G5_TIME_YMDHIS."' "; $agree_items[] = "개인정보 제3자 제공(" . ($mb_thirdparty_agree == 1 ? "동의" : "철회") . ")"; }