제로보드 XE 주민등록 번호 입력 기능 추가
작성일시 : 2009/02/16 16:05 | 분류 : PROGRAM/XE || Zeroboard | 태그 : 1.1.5, XE, 제로보드, 주민등록번호
이전에 한번 1.1.2 버전으로 작업 했다가.. 최근에 들어가보니 댓글들이 1.1.5에 맞춰서 수정을 요청하는 글들이 많았다. 업무랑 관련해서 작업 한거라 솔직히 개인적으로 다시 작업할 여건은 안되서 그냥 저냥 지나가다가. 이번에 1.1.5에 맞춰서 전체 수정을 감행 하면서 우선 블로그에 정리를 해보려고한다. (정리 끝나면 XE홈에 다시 수정본으로 올려야지~~) 1. /xe/modules/member/schemas/member.xml + line 10 -> <column name="jumin" type="char" size="13" /> - XE 최초 설치일 경우 아마 위 코드로 자동으로 컬럼이 생성될 것입니다. - 최초 설치자가 아니거나 jumin 컬럼이 추가 되지 않은 경우 DBTool을 이용하여 컬럼을 추가해 주시면 됩니다. 2. /xe/modules/member/skins/default/filter/signup.xml + line 9 -> <node target="jumin" required="false" minlength="13" maxlength="13" filter="jumin"/> + line 18 -> <param name="jumin" target="jumin" /> - 회원 가입 관련 xml에 jumin 항목 추가 3. /xe/modules/member/queries/insertMember.xml + line 14 -> <column name="jumin" var="jumin" minlength="13" maxlength="13"/> - 회원 가입 완료 시 jumin 필드에 데이터 추가 4. /xe/modules/member/queries/getMemberSrl.xml + line 12 -> <condition operation="equal" column="jumin" var="jumin" pipe="and" /> - 중복 체크를 하기 위해 jumin 항목을 가져옴 5. /xe/modules/member/tpl/js/signup_check.js + line 17 수정 if(node_name != "user_id" && node_name != "nick_name" && node_name != "email_address" && node_name != "jumin" ) continue; - 비동기로 중복 체크를 할 항목에 jumin 항목 추가 6. /xe/modules/member/lang/ko.lang.php + line 135 -> $lang->msg_exists_jumin = '이미 존재하는 주민등록 번호입니다. 계정도용이 의심 될 경우 관리자에게 연락 주세요'; - 주민등록 번호가 중복 될 경우 표시될 텍스트 추가 + line 136 -> $lang->msg_false_jumin_no = '잘못된 주민등록 번호 형식입니다.'; - 주민등록 번호 형식이 잘못 되었을 경우 표시될 텍스트 추가 + line 158 -> $lang->about_jumin = '- 를 제외한 숫자 13자리를 입력해 주세요.'; - 주민등록 필드 하단에 표시될 설명 7. /xe/common/lang/ko.lang.php + line 89 -> $lang->jumin = '주민등록번호'; - 회원 가입 폼의 주민등록 번호 항목에 표시될 이름 + line 293 -> $lang->filter->invalid_jumin = '잘못된 %s입니다.'; - 잘못된 주민등록 번호 입력 시 alert창 표시 내용. 8. /xe/modules/member/skins/default/signup_form.html + line 66 ~ 72 <tr> <th scope="row">{$lang->jumin}</th> <td> <input type="password" name="jumin" value="" maxlength="13"/> <p>{$lang->about_jumin}</p> </td> </tr> - password 타입으로 주민등록 입력 폼 추가 + line 87 ~ 96 -> 주석 처리 - 주민등록 번호가 있으므로 생년월일 입력 필드 제거 9. /xe/modules/member/member.controller.php + line 403 ~ 409 추가 case 'jumin' : // 형식 검사 if($oMemberModel->isTrueNumber($value)==false) return new Object(0,'msg_false_jumin_no'); // 중복 검사 $member_srl = $oMemberModel->getMemberSrlByJumin($value); if($member_srl && $logged_info->member_srl != $member_srl ) return new Object(0,'msg_exists_jumin'); break; - 주민등록 번호 형식 검사 및 중복 검사 호출(비동기로 확인) + line 427 -> 수정 $args = Context::gets('user_id','user_name','nick_name','jumin','homepage','blog','birthday','email_address','password','allow_mailing'); - 입력 항목에 jumin 필드 포함 + line 1227 추가 $member_srl = $oMemberModel->getMemberSrlByJumin($args->jumin); if($member_srl) return new Object(-1, 'msg_exists_jumin'); - 주민등록 번호 중복 검사(회원 가입 등록 버튼 클릭 시 체크) 10. /xe/modules/member/member.model.php + line 223 ~ 230 추가 /** * @brief jumin에 해당하는 member_srl을 구함 **/ function getMemberSrlByJumin($jumin) { $args->jumin = $jumin; $output = executeQuery('member.getMemberSrl', $args); return $output->data->member_srl; } - 주민등록 번호 중복 검사 + line 492 ~ 509 추가 /** * @brief 주민등록 번호 형식 확인 **/ function isTrueNumber($jumin) { $total = 0; for($i=0;$i<13;$i++){ $sval = substr($jumin, $i, 1); if($sval<8) { $total = $total + ($sval * ($i+2)); } if($i>7&&$i<12){ $total = $total + ($sval*($i-6)); } $total = $total % 11; $total2 = 11 - $total; if($total2 > 9) $total2 = $total2 % 10; $total = substr($jumin,12,1); if($total == $total2) return true; else return false; } } - 주민등록 번호 형식 검사 11. /xe/common/js/xml-js_filter.js + line 189 ~ 191 추가 case "jumin" : return juminChk(value); break; - 형식이 jumin일 경우 juminChk 함수 호출 + line 200 ~ 220 추가 function juminChk(val) { var total = 0; var sval; for(i=0;i<13;i++){ sval = val.substr(i,1); if(i<8) { total = total + (sval*(i+2)); } if(i>7 && i < 12) { total = total + (sval*(i-6)); } } total = total%11; if(total == total2) return true; |
'메모' 카테고리의 다른 글
php 변수관련 함수...펌 (0) | 2012.06.25 |
---|---|
php 문자열함수...펌 (0) | 2012.06.25 |
xe 그룹별 가입날짜를 보여주는 방법...펌 (0) | 2012.06.25 |
mysql 문자열 함수...펌 (0) | 2012.06.24 |
php 세션 삭제...펌 (0) | 2012.06.24 |