그누보드 로그인 회원 글 작성 시 이름 및 이메일 직접 입력 수정 가이드
페이지 정보

본문
그누보드에서 로그인한 회원이 글을 작성할 때 기본으로 자동 입력되는 회원정보(이름, 이메일 등)를 직접 수정하여 입력할 수 있도록 스킨과 업데이트 파일을 수정하는 방법을 알아봅니다.
그누보드 로그인 회원 글 작성 시 이름 및 이메일 직접 입력 수정 방법
로그인한 회원이 게시판 글 작성 시 회원정보로 자동 입력되는 이름과 이메일 등의 기본 입력 필드를 직접 수정하여 입력할 수 있도록 변경하려면, 사용 중인 게시판 스킨의 write.skin.php 파일을 수정하고 write_update.skin.php 파일을 생성·수정해야 합니다.
1. write.skin.php 수정
게시판 스킨 경로(skin/board/스킨명/)의 write.skin.php 파일에서 이름과 이메일 등의 입력 필드를 제어하는 조건문(if ($is_name), if ($is_email) 등)을 주석 처리하거나 해제하여 로그인 회원도 입력 폼이 노출되도록 변경합니다.
그누보드5.4 예시 (skin/board/스킨/write.skin.php)
<?php //if ($is_name) {?>
<label for="wr_name" class="sound_only">이름<strong>필수</strong></label>
<input type="text" name="wr_name" value="<?php echo $name;?>" id="wr_name" required class="frm_input half_input required" placeholder="이름">
<?php //}?>
<?php //if ($is_email) {?>
<label for="wr_email" class="sound_only">이메일</label>
<input type="text" name="wr_email" value="<?php echo $email;?>" id="wr_email" class="frm_input half_input email " placeholder="이메일">
<?php //}?>
2. write_update.skin.php 생성 및 설정
게시판 스킨 경로에 write_update.skin.php 파일이 없다면 새로 생성하고, 전송된 수정 작성자 정보를 데이터베이스에 강제로 업데이트하는 쿼리 처리를 추가합니다.
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 작성자정보를 변경하기
if ($_POST['wr_name'] || $_POST['wr_password'] || $_POST['wr_homepage'] || $_POST['wr_email'] || $_PSOT['wr_ip']) {
$sql_update_writer = " update `{$write_table}` set ";
if ($_POST['wr_homepage']) $sql_update_writer.= "wr_homepage = '{$_POST['wr_homepage']}', ";
if ($_POST['wr_email']) $sql_update_writer.= "wr_email = '{$_POST['wr_email']}', ";
if ($_POST['wr_ip']) $sql_update_writer.= "wr_ip = '{$_POST['wr_ip']}', ";
$sql_update_writer.= "wr_name = '{$_POST['wr_name']}' ";
$sql_update_writer.= "where wr_id = '{$wr_id}' ";
sql_query($sql_update_writer);
}
?>
write_update.skin.php 작성 및 DB 반영 방법
로그인한 회원이 write.skin.php에서 직접 수정하여 전송한 이름과 이메일 등의 작성자 정보가 실제 게시물 테이블에 정상적으로 덮어씌워지도록 하려면, 해당 게시판 스킨 경로에 write_update.skin.php 파일을 생성하거나 수정해야 합니다. 파일이 없는 경우 새로 생성한 뒤 아래의 코드를 추가합니다.
1. 수정 코드 작성
사용자가 폼에서 입력해 전송한 wr_name, wr_email, wr_homepage, wr_password, wr_ip 등의 값이 존재하는지 확인하고, 데이터베이스 테이블({$write_table})의 해당 게시물(wr_id) 정보를 강제로 업데이트하는 쿼리를 실행합니다.
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 자신만의 코드를 넣어주세요.
// 작성자정보를 변경하기
if ($_POST['wr_name'] || $_POST['wr_password'] || $_POST['wr_homepage'] || $_POST['wr_email'] || $_POST['wr_ip']) {
$sql_update_writer = " update `{$write_table}` set ";
//if ($_POST['wr_password']) $sql_update_writer.= "wr_password = '{$_POST['wr_password']}', ";
if ($_POST['wr_homepage']) $sql_update_writer.= "wr_homepage = '{$_POST['wr_homepage']}', ";
if ($_POST['wr_email']) $sql_update_writer.= "wr_email = '{$_POST['wr_email']}', ";
if ($_POST['wr_ip']) $sql_update_writer.= "wr_ip = '{$_POST['wr_ip']}' ";
$sql_update_writer.= "wr_name = '{$_POST['wr_name']}' ";
$sql_update_writer.= "where wr_id = '{$wr_id}' ";
sql_query($sql_update_writer);
}
?>
2. 다음 행동 및 주의사항
write.skin.php에서 로그인 회원의 이름 및 이메일 입력 필드를 직접 수정할 수 있도록 입력 폼을 활성화한 후, 게시글을 등록하여 DB에 값이 의도대로 저장되는지 확인해야 합니다.- 파일 경로(
skin/board/스킨명/write_update.skin.php)가 정확한지 확인합니다.
그누보드4와 그누보드5 환경에서 로그인 회원이 글 작성 시 이름과 이메일을 직접 입력할 수 있도록 write.skin.php를 수정할 때, 사용되는 HTML 태그 구조와 속성 표기 방식에 차이가 있습니다.
1. 그누보드5.4 환경
- 구조 및 태그: HTML5 기반의
<input>태그와 클래스 속성(frm_input half_input,placeholder,sound_only등)을 사용합니다. - 조건문 처리:
$is_name,$is_email등의 조건문 블록을 주석 처리(//)하여 로그인 여부와 관계없이 입력 폼이 항상 노출되도록 변경합니다.
2. 그누보드4 환경
- 구조 및 태그: 테이블 레이아웃(
<tr>,<td>,write_head)을 사용하며,<input>태그 내에maxlength,size,itemname등의 속성과<?=$name?>형태의 PHP 출력 구문을 사용합니다. - 조건문 처리: 기존의
if ($is_name),if ($is_email)조건문 주변을 PHP 주석(//)으로 감싸서 강제로 입력 필드를 열어두는 방식을 사용합니다.
그누보드 로그인 회원 글 작성 시 이름·이메일 직접 입력 수정
- 내 상황: 로그인한 회원이 글 작성 시 회원정보 기반으로 자동 입력되는 이름과 이메일을 직접 수정해 입력할 수 있도록 변경하고자 함
- 선택 기준: 사용 중인 그누보드 버전(그누보드4 또는 그누보드5.4)에 맞춘
write.skin.php의 입력 필드 조건문 주석 처리 및write_update.skin.php를 통한 DB 강제 업데이트 쿼리 추가 - 다음 행동:
skin/board/스킨명/write.skin.php에서 이름과 이메일 출력부의if조건문을 주석 처리하여 입력 폼을 항상 노출하고, 해당 경로에write_update.skin.php파일을 생성(또는 수정)하여 전송된 값을 업데이트하는 쿼리 코드 삽입
실전 FAQ
Q. write_update.skin.php 파일이 기존에 없을 때는 어떻게 해야 하나요?
- 예외 및 대안: 스킨 폴더(
skin/board/스킨명/) 내에write_update.skin.php파일이 존재하지 않는다면 직접 새 파일을 생성하여 시작합니다. 파일 상단에if (!defined("_GNUBOARD_")) exit;보안 코드를 반드시 포함한 뒤 안내된 업데이트 쿼리 소스 코드를 작성해야 정상 동작합니다.
함께 보면 좋은 글
- 그누보드 네이버 소셜 로그인 가입 시 닉네임 대신 이메일 아이디가 들어가는 원인과 해결 방법
- 그누보드 소셜 로그인 이메일 미수집 중복 가입 오류 해결 방법
- 그누보드 이메일 미인증 회원 일괄 탈퇴 처리 방법
참고자료
기타 참고자료
- 이전글그누보드 클럽 가입자 및 매니저 명칭을 닉네임 대신 실명으로 표시하는 방법 26.10.07
- 다음글그누보드4 게시판 엑셀 다운로드 기능 구현 방법 26.10.06
댓글목록
등록된 댓글이 없습니다.