그누보드 회원가입 여분 필드 배열 데이터 처리 및 저장 가이드
페이지 정보

본문
그누보드 회원가입 시 여분 필드(mb_1) 하나를 여러 개의 입력값(배열 형태)으로 나누어 받고, 데이터를 합쳐서 데이터베이스에 안전하게 저장 및 수정하는 방법을 알아봅니다.
회원가입 스킨 여분 필드 배열 입력 방법
그누보드5 환경의 회원가입 폼 스킨 파일인 skin/member/basic/register_form.skin.php에서 회원 정보 여분 필드(mb_1)를 배열 형태로 나누어 입력받으려면 explode() 함수를 사용하여 기존 저장된 값을 구분자 기준으로 분리하고, 입력 필드의 name 속성을 배열 형식으로 지정해야 합니다.
1. 수정 위치 및 코드 작성
skin/member/basic/register_form.skin.php 파일에 진입하여 PHP 상단 영역 또는 입력 항목 위치에 아래와 같이 코드를 추가합니다.
<?php $fax = explode("-",$member['mb_1']); // 팩스?>
<tr>
<th scope="row"><label for="mb_1">팩스</label></th>
<td>
<input type="text" name="fax[0]" value="<?php echo $fax[0]?>" class="frm_input" size="10" maxlength="4"> -
<input type="text" name="fax[1]" value="<?php echo $fax[1]?>" class="frm_input" size="10" maxlength="4"> -
<input type="text" name="fax[2]" value="<?php echo $fax[2]?>" class="frm_input" size="10" maxlength="4">
</td>
</tr>
2. 설정 조건 및 주의사항
- name 속성: 입력 칸마다
fax[0],fax[1],fax[2]와 같이 배열 형태로 지정합니다. - 자릿수 설정: 자릿수 제한이 필요할 경우
maxlength속성값을 환경에 맞게 조절합니다. - 구분 기호 일치:
explode("-",...)에서 사용한 구분 기호(-)는 나중에 데이터를 합쳐서 저장할 때 사용하는 기호와 일치해야 수정 모드에서 기존 값을 정상적으로 인식할 수 있습니다.
여분 필드 배열 데이터 저장 방법
회원가입 시 분할 입력받은 배열 형태의 여분 필드 값을 하나로 합쳐서 데이터베이스에 저장하려면, 사용하는 회원 스킨 폴더 안에 register_form_update.tail.skin.php 파일을 새로 생성해야 합니다.
1. 파일 생성 위치
- 경로: 회원 스킨 폴더 내부 (예:
skin/member/basic/register_form_update.tail.skin.php)
2. 추가할 코드 예시
파일 내부에 아래 코드를 작성하여 배열로 넘어온 값들을 구분자와 함께 결합한 뒤 SQL 쿼리로 mb_1 등의 여분 필드에 업데이트합니다.
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$mb_1 = "$fax[0]-$fax[1]-$fax[2]";
sql_query(" update {$g5['member_table']} set mb_1 = '$mb_1' where mb_id = '$mb_id' ");
?>
- 주의: 입력 폼(
register_form.skin.php)에서 설정한 배열 이름(fax[0],mb10[0]등)과 구분 기호(예:-또는:)가 저장 및 수정 시 서로 일치해야 정상적으로 값을 인식하고 처리할 수 있습니다.
그누보드 관리자 모드 회원정보 수정 시 여분 필드 배열 데이터 처리 연동
그누보드에서 회원가입 스킨(skin/member/basic/register_form.skin.php)과 후속 처리 파일(register_form_update.tail.skin.php)을 이용해 여분 필드(mb_1 등)를 배열 형태로 나누어 입력받고 저장하는 경우, 회원가입 시에는 정상적으로 처리되더라도 관리자 모드의 회원정보 수정 화면에서 수정한 내용이 반영되지 않거나 입력받은 값이 그대로 유지되는 문제가 발생할 수 있습니다.
이는 프론트엔드 회원가입 폼 처리 방식과 관리자 모드의 백엔드 처리 파일(/adm/member_form_update.php) 간의 처리 방식 차이에서 기인합니다. 따라서 관리자 페이지에서 회원 정보를 수정할 때 배열로 처리된 여분 필드 값이 정상적으로 반영되도록 하려면 다음 사항을 확인해야 합니다.
- 관리자 수정 파일 연동 확인: 관리자 페이지에서 회원을 수정할 때는 사용자 가입 시 실행되는
register_form_update.tail.skin.php가 작동하지 않고/adm/member_form_update.php파일이 실행됩니다. 관리자 모드에서 배열 값을 반영하려면/adm/member_form_update.php파일 내에서 해당 여분 필드(예:mb_1)를 업데이트하는 쿼리 부분에 배열 값을 합치는 로직을 추가해야 합니다. 예를 들어,$_POST['fax']배열로 값이 넘어온다면$mb_1 = $_POST['fax'][0].'-'.$_POST['fax'][1].'-'.$_POST['fax'][2];와 같이 처리한 후 SQL 쿼리에 반영하십시오. - 구분 기호 일치 여부 확인: 배열 값을 합쳐서 저장할 때 사용한 구분 기호(예:
-또는:)와 수정 모드에서 데이터를 다시 쪼갤 때 사용하는explode()함수의 구분 기호가 서로 일치하는지 확인해야 합니다. 저장할 때와 불러올 때의 구분 기호가 다르면 수정 모드에서 기존 값을 올바르게 인식하지 못합니다.
회원 정보 여분 필드 배열 처리 가이드
| 내 상황 | 우선할 판단 | 다음 행동 |
|---|---|---|
회원가입 폼에서 여분 필드(mb_1 등)를 여러 개 칸으로 나누어 입력받고 싶을 때 | 입력 폼 파일의 name 속성을 배열 형태(fax[0], fax[1] 등)로 지정하고 상단에 explode() 함수 배치 | skin/member/basic/register_form.skin.php 파일을 수정하여 입력 필드 구성 |
| 입력받은 분할 값을 하나로 합쳐서 DB에 저장해야 할 때 | 회원 스킨 폴더 내부에 전용 처리 파일 생성 및 SQL 업데이트 쿼리 작성 | register_form_update.tail.skin.php 파일을 새로 생성하여 결합 및 저장 로직 구현 |
실전 FAQ
Q. 입력 폼에서 나눈 배열 값을 저장할 때 어떤 파일을 만들어야 하나요?
- 대안 및 예외: 회원가입 완료 후 데이터를 처리하는 스킨 폴더 안에
register_form_update.tail.skin.php파일을 새로 생성해야 합니다. 이 파일 내에서 분할된 배열 변수들을 하나의 문자열로 결합한 뒤sql_query함수를 통해g5_member테이블의 해당 여분 필드(mb_1등)에 업데이트해야 정상적으로 저장됩니다.
Q. 수정 모드에서 기존에 저장된 배열 값이 올바르게 표시되지 않을 때 무엇을 확인해야 하나요?
- 막히는 지점 및 해결: 데이터를 불러올 때
explode()함수에서 사용하는 구분 기호(예:-등)와 저장할 때 결합용으로 사용하는 구분 기호가 서로 일치하는지 확인해야 합니다. 기호가 다르면 수정 모드에서 기존 데이터를 정상적으로 쪼개어 인식하지 못합니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 게시판 데이터베이스 여분 필드 확장 (wr11 이상 추가) 26.09.30
- 다음글그누보드 새글(new.php) 페이지 스킨 아이콘 출력 및 커스터마이징 방법 26.09.30
댓글목록
등록된 댓글이 없습니다.