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

본문
그누보드 회원 아이디 이메일 일괄 변경 방법과 연관 테이블 영향 점검
그누보드 운영 중 기존 회원 아이디를 이메일 주소로 일괄 변경해 이메일 로그인 방식을 도입하려는 운영자를 위해, 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테이블의 아이디만 일괄 변경하면 기존 데이터와의 관계가 끊겨 작성자 정보 유실, 포인트 내역 불일치, 권한 오류 등이 발생할 수 있습니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- 이전글그누보드 첨부 이미지 alt 태그에 글 제목 자동 삽입하기 26.10.13
- 다음글그누보드 장기 미접속 휴면 회원 일괄 삭제 및 완전 정리 방법 26.10.13
댓글목록
등록된 댓글이 없습니다.