제로보드(XE : XpressEngine) 자료실



Vote Reply Modify Delete Forward Prev Next List

  작성자   : 조성환 [ ladmin ] 추천: 314, 수정: 5, 조회: 1159, 줄수: 53, 분류: Etc.
제로보드XE 에서 숫자 아이디 로그인 안될 때 설정법 [강추]

제로보드 사용 당시 회원 중 상당수가 숫자로 시작하는 아이디를 가지고 있는데 xe로 만든 새 홈페이지에 로그인 불가능하다는 사실을 최근에야 알았습니다.

해결방안을 검색한 결과 다음 방법이 있었습니다.

http://www.xpressengine.com/index.php?mid=tip&search_target=title&search_keyword=%EC%88%AB%EC%9E%90+%EC%95%84%EC%9D%B4%EB%94%94&document_srl=16397007


그러나 현재 1.7.5.4 에서는 아무런 효과가 없었습니다. 숫자로 시작하는 아이디로 로그인 시도하면 아이디 첫글자는 문자로 시작해야 된다는 경고팝이 뜰 뿐입니다.

xe 코드를 그냥 분석하고 실험으로 알아낸 해결방법은 다음과 같습니다. XE 에서 로그인 아이디를 두번 검사하고 있으며 각각 경고창을 띠워 주고 있었습니다.


1)  파일: ./common/js/xml_js_filter.js

수정내용
수정위치: 라인번호 26, //predefined rules 에서 userid 지정하는 라인

수정 전 :  'userid' => '/^[a-z]+[\w-]*[a-z0-9_]+$/i'
수정 후 : 'userid' => '/^[0-9a-zA-Z]+[\w-]*[a-z0-9_]+$/i'

수정방법
최신버전 xe에서는 압축유틸리티 minify를 이용하고 있었습니다. 수정해야 할 대상은 xml_js_filter.js 이지만 실제로는 xe.js 로 합친 후 minify로 압축한 xe.min.js을 변경해 주어야 xe 에 실제로 반영되는 것입니다.

xe.js는 common.js + js_app.js + xml_handler.js + xml_js_filter.js 를 합친 것이며, xe.js 를 minify로 압축하여 만들어 진 것이 xe.min.js입니다. 실제 실행시 사용되는 파일은 xe.min.js이므로 xml_js_filter.js를 수정한 후에 minify를 이용하여 xe.min.js를 만들어 주어야 한다.

(1) xml_js_filter.js와 xe.js에서 동일하게 [0-9a-zA-Z]와 같이 수정해 주고

(2) minify를 다운로드 받아서 홈페이지에 설치하고

(3) minify를 실행시켜 xe.min.js를 만들어 주었습니다.
수정결과
위와 같이 수정한 결과 로그인시 경고창이 없어졌지만 2차로 상단에 같은 경고문으로 잠시후 사라지는 경고창이 떳습니다. 물론 로그인도 안되면서... 다시 xe를 분석하여 다음 사항을 찾아 수정하게 되었습니다.


2)  파일: ./classes/validator/Validator.class.php

수정내용
수정위치: 라인번호 90, //predefined rules 에서 userid 지정하는 라인


                       // 'userid' => '/^[a-z]+[\w-]*[a-z0-9_]+$/i',
                       'userid' => '/^[0-9a-zA-Z]+[\w-]*[a-z0-9_]+$/i',


수정결과

위와 같이 수정한 결과 로그인시 2차 경고창이 없어지고 정상적인 로그인이 가능하게 되었습니다. 코드를 보면 수정하기 전에는 아이디 첫글자는 반드시 영문 소문자만 가능하도록 되어 있었습니다. 수정후에는 숫자, 영소문자, 영대문자로 시작하더라도 로그인과정을 통과할 수 있게 되었습니다.


출처 : https://www.xpressengine.com/tip/22803787

이전: 제로보드 XE 홈페이지 메인 이미지 변경(일어친구 예)
다음: 썸네일이 생성되지 않을때
2015/12/24(00:12) from 203.234.123.96
CrazyWWWBoard 2000

Vote Reply Modify Delete Forward Prev Next List

(c) Nobreak Technologies, Inc.