BOARD

팁·활용

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 4회 작성일 26-10-07 15:14

본문

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

그누보드에서 로그인한 회원이 글을 작성할 때 기본으로 자동 입력되는 회원정보(이름, 이메일 등)를 직접 수정하여 입력할 수 있도록 스킨과 업데이트 파일을 수정하는 방법을 알아봅니다.

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

로그인한 회원이 게시판 글 작성 시 회원정보로 자동 입력되는 이름과 이메일 등의 기본 입력 필드를 직접 수정하여 입력할 수 있도록 변경하려면, 사용 중인 게시판 스킨의 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; 보안 코드를 반드시 포함한 뒤 안내된 업데이트 쿼리 소스 코드를 작성해야 정상 동작합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.