BOARD

팁·활용

그누보드 회원 아이디 이메일 일괄 변경 방법과 연관 테이블 영향 점검

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 3회 작성일 26-10-13 15:27

본문

그누보드 회원 아이디 이메일 일괄 변경 방법과 연관 테이블 영향 점검

그누보드 운영 중 기존 회원 아이디를 이메일 주소로 일괄 변경해 이메일 로그인 방식을 도입하려는 운영자를 위해, DB 스크립트 실행 절차와 무결성 유지 시 주의할 점을 안내합니다.

회원 아이디를 이메일 주소로 일괄 변경하는 PHP 스크립트 작성 및 실행 방법

사이트 운영 중 기존 회원들이 이메일 주소로 로그인할 수 있도록 회원 아이디 값을 이메일 주소로 일괄 변경하려면, 데이터베이스 백업 후 아래의 PHP 코드를 활용하여 스크립트를 생성하고 서버에 업로드하여 실행해야 합니다.

1. 사전 준비

  • 작업을 진행하기 전 반드시 회원 DB 테이블(g5_member)을 백업해야 합니다.
  • 관리자 아이디가 admin이 아닌 경우 스크립트 내의 admin 부분을 실제 관리자 아이디로 수정해야 합니다.

2. PHP 스크립트 파일 내용

그누보드가 설치된 경로에 신규 파일을 생성한 뒤, 아래의 소스 코드를 그대로 복사하여 입력합니다.

<?php
include_once('./_common.php');
$sql = " select * from {$g5['member_table']} where mb_id!= 'admin' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
 sql_query(" update {$g5['member_table']} set mb_id = '{$row['mb_email']}' where mb_id = '{$row['mb_id']}' ");
}
echo "변경완료";
?>

3. 실행 및 확인 방법

  • 작성한 파일을 서버에 업로드하고 웹 브라우저를 통해 해당 파일에 접속하여 실행합니다.
  • 실행 후 관리자 페이지의 회원관리 메뉴로 이동하여 회원 아이디가 이메일 주소로 정상적으로 변경되었는지 체크합니다.
  • 확인이 완료되면 서버에 생성했던 스크립트 파일은 즉시 삭제합니다.

4. 주의 사항

  • 회원 아이디는 포인트 테이블, 게시글 권한 등 여러 부분에 영향을 미치므로 단순히 로그인 기능만 생각하고 적용할 경우 연관된 테이블과의 관계에서 문제가 발생할 수 있습니다. 관련 내용을 정확히 이해하고 있는 경우에만 적용을 권장합니다.

그누보드 회원 아이디 이메일 일괄 변경 시 연관 테이블 영향

그누보드에서 회원 아이디(mb_id)는 단순히 로그인 식별자에 그치지 않고, 포인트 테이블이나 게시판 권한 등 사이트 내 여러 데이터와 연관되는 핵심 값입니다.

발생 가능한 문제점

  • 데이터 무결성 및 관계 유실: 회원 테이블(g5_member)의 mb_id는 게시글(g5_write_*), 댓글, 포인트(g5_point), 관리자 권한(g5_auth), 그룹 회원(g5_group_member) 등 다수의 테이블에서 외래키로 사용됩니다. g5_member 테이블의 mb_id만 일괄 변경하면 기존 데이터와의 관계가 끊겨 작성자 정보 유실, 포인트 내역 불일치, 권한 오류 등이 발생합니다.
  • 연관 테이블 영향: 포인트 내역, 게시글 및 댓글 작성자 정보, 게시판 권한 설정 등에서 기존 mb_id를 참조하던 데이터와의 연결이 끊겨 데이터 무결성이 훼손됩니다.

주의 사항 및 대책

  • 회원 아이디 값 변경은 단순히 로그인 기능만을 고려해 처리할 경우 예상치 못한 부작용을 낳을 수 있습니다.
  • 관련 내용을 정확히 이해하고 있고 연관된 모든 테이블의 데이터를 함께 수정할 수 있는 경우에만 적용해야 하며, 작업 전 반드시 회원DB 테이블(g5_member)을 포함한 전체 DB 백업을 진행해야 합니다.

로그인 로직 수정 대안 적용 방법

데이터베이스의 mb_id를 직접 변경하는 방식은 포인트 테이블, 게시판 권한 등 연관된 다른 테이블과의 관계에 문제가 발생할 수 있습니다. 따라서 DB 구조를 수정하는 대신 로그인 처리 과정에서 입력값을 mb_email과 대조하도록 로직을 수정하는 방식을 검토할 수 있습니다.

수정 시 고려사항

  • login_check.php, get_member 함수, login_password_check 함수 등 수정해야 할 부분이 많습니다.
  • 아이디 필드에 이메일을 대입받고 DB 필드 길이를 수정한 뒤 regist_form_update 및 관련 함수를 함께 수정하는 방법이 언급되나, 관련 내용을 전부 직접 수정해야 하므로 작업 범위가 넓습니다.

상황별 판단 및 행동 가이드

  • 내 상황: 기존 회원들의 아이디를 이메일 주소로 일괄 변경하여 이메일 로그인을 지원하고자 함
  • 우선할 판단: 연관 테이블(포인트, 게시글 권한 등)에 미치는 영향을 검토하고 데이터베이스 무결성 유지 가능 여부 확인
  • 다음 행동: 회원 DB 테이블(g5_member) 백업 후 관리자 계정을 제외한 mb_id를 mb_email 값으로 업데이트하는 PHP 스크립트 실행 및 결과 확인

실전 FAQ

Q. 기존 회원의 아이디를 일괄 변경할 때 발생할 수 있는 주요 문제는 무엇인가요?

  • 그누보드에서 mb_id는 포인트 테이블이나 게시판 권한 등 다수의 테이블에서 외래키로 사용됩니다. g5_member 테이블의 아이디만 일괄 변경하면 기존 데이터와의 관계가 끊겨 작성자 정보 유실, 포인트 내역 불일치, 권한 오류 등이 발생할 수 있습니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.