아이디,별명 금지단어 강화
관리자 페이지에 설명은 "입력된 단어가 포함된 내용은 회원아이디, 별명으로 사용할 수 없습니다." 라고 되어 있지만
실제 그누보드에서는 '단어가 포함된 내용' 이 아니라 '단어와 일치한 내용' 만 걸러집니다.
다음과 같이 수정하시면 해결이 됩니다.
1) bbs/register_form_update.php 파일
----
수정전
if (preg_match("/[\,]?{$mb_id}/i", $config[cf_prohibit_id]))
alert("\'$mb_id\' 은(는) 예약어로 사용하실 수 없는 회원아이디입니다.");
if (preg_match("/[\,]?{$mb_nick}/i", $config[cf_prohibit_id]))
alert("\'$mb_nick\' 은(는) 예약어로 사용하실 수 없는 별명입니다.");
수정후
$wrd = explode(",", $config[cf_prohibit_id]);
for ($i=0, $m=count($wrd); $i<$m; $i++) {
$tmp = trim($wrd[$i]);
if (preg_match("/{$tmp}/i", $mb_id))
alert("\'$mb_id\' 은(는) 예약어로 사용하실 수 없는 회원아이디입니다.");
if (preg_match("/{$tmp}/i", $mb_nick))
alert("\'$mb_nick\' 은(는) 예약어로 사용하실 수 없는 별명입니다.");
}
2) skin/member/사용중인회원스킨/ajax_mb_id_check.php 파일
----
수정전
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '$reg_mb_id' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 회원아이디
} else {
if (preg_match("/[\,]?{$reg_mb_id}/i", $config[cf_prohibit_id]))
echo "140"; // 예약어로 금지된 회원아이디
else
echo "000"; // 정상
}
수정후
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '$reg_mb_id' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 회원아이디
} else {
$wrd = explode(",", $config[cf_prohibit_id]);
for ($i=0, $m=count($wrd); $i<$m; $i++) {
$tmp = trim($wrd[$i]);
if (preg_match("/{$tmp}/i", $reg_mb_id)) {
echo "140"; exit;
}
}
echo "000";
}
3) skin/member/사용중인회원스킨/ajax_mb_nick_check.php 파일
----
수정전
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_nick = '$reg_mb_nick' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 별명
} else {
echo "000"; // 정상
}
수정후
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_nick = '$reg_mb_nick' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 별명
} else {
$wrd = explode(",", $config[cf_prohibit_id]);
for ($i=0, $m=count($wrd); $i<$m; $i++) {
$tmp = trim($wrd[$i]);
if (preg_match("/{$tmp}/i", $reg_mb_nick)) {
echo "140"; exit;
}
}
echo "000";
}
4) skin/member/사용중인회원스킨/ajax_register_form.jquery.js 파일 case '140' 라인 추가
----
switch(result) {
case '110' : msg.html('별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.').css('color', 'red'); break;
case '120' : msg.html('한글 2글자, 영문 4글자 이상 입력 가능합니다.').css('color', 'red'); break;
case '130' : msg.html('이미 존재하는 별명입니다.').css('color', 'red'); break;
case '140' : msg.html('예약어로 사용할 수 없는 별명 입니다.').css('color', 'red'); break; // 추가
case '000' : msg.html('사용하셔도 좋은 별명 입니다.').css('color', 'blue'); break;
default : alert( '잘못된 접근입니다.\n\n' + result ); break;
}
실제 그누보드에서는 '단어가 포함된 내용' 이 아니라 '단어와 일치한 내용' 만 걸러집니다.
다음과 같이 수정하시면 해결이 됩니다.
1) bbs/register_form_update.php 파일
----
수정전
if (preg_match("/[\,]?{$mb_id}/i", $config[cf_prohibit_id]))
alert("\'$mb_id\' 은(는) 예약어로 사용하실 수 없는 회원아이디입니다.");
if (preg_match("/[\,]?{$mb_nick}/i", $config[cf_prohibit_id]))
alert("\'$mb_nick\' 은(는) 예약어로 사용하실 수 없는 별명입니다.");
수정후
$wrd = explode(",", $config[cf_prohibit_id]);
for ($i=0, $m=count($wrd); $i<$m; $i++) {
$tmp = trim($wrd[$i]);
if (preg_match("/{$tmp}/i", $mb_id))
alert("\'$mb_id\' 은(는) 예약어로 사용하실 수 없는 회원아이디입니다.");
if (preg_match("/{$tmp}/i", $mb_nick))
alert("\'$mb_nick\' 은(는) 예약어로 사용하실 수 없는 별명입니다.");
}
2) skin/member/사용중인회원스킨/ajax_mb_id_check.php 파일
----
수정전
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '$reg_mb_id' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 회원아이디
} else {
if (preg_match("/[\,]?{$reg_mb_id}/i", $config[cf_prohibit_id]))
echo "140"; // 예약어로 금지된 회원아이디
else
echo "000"; // 정상
}
수정후
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '$reg_mb_id' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 회원아이디
} else {
$wrd = explode(",", $config[cf_prohibit_id]);
for ($i=0, $m=count($wrd); $i<$m; $i++) {
$tmp = trim($wrd[$i]);
if (preg_match("/{$tmp}/i", $reg_mb_id)) {
echo "140"; exit;
}
}
echo "000";
}
3) skin/member/사용중인회원스킨/ajax_mb_nick_check.php 파일
----
수정전
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_nick = '$reg_mb_nick' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 별명
} else {
echo "000"; // 정상
}
수정후
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_nick = '$reg_mb_nick' ");
if ($row[cnt]) {
echo "130"; // 이미 존재하는 별명
} else {
$wrd = explode(",", $config[cf_prohibit_id]);
for ($i=0, $m=count($wrd); $i<$m; $i++) {
$tmp = trim($wrd[$i]);
if (preg_match("/{$tmp}/i", $reg_mb_nick)) {
echo "140"; exit;
}
}
echo "000";
}
4) skin/member/사용중인회원스킨/ajax_register_form.jquery.js 파일 case '140' 라인 추가
----
switch(result) {
case '110' : msg.html('별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.').css('color', 'red'); break;
case '120' : msg.html('한글 2글자, 영문 4글자 이상 입력 가능합니다.').css('color', 'red'); break;
case '130' : msg.html('이미 존재하는 별명입니다.').css('color', 'red'); break;
case '140' : msg.html('예약어로 사용할 수 없는 별명 입니다.').css('color', 'red'); break; // 추가
case '000' : msg.html('사용하셔도 좋은 별명 입니다.').css('color', 'blue'); break;
default : alert( '잘못된 접근입니다.\n\n' + result ); break;
}
첨부파일
댓글 6개
13년 전
감사합니다.
ohora
13년 전
미처 모르고 있던 부분인데... 감사합니다.
13년 전
그랬군요. 모르고 있었습니다. 감사합니다. 좋아요~ 꾸욱~
13년 전
적용해 보았는데 회원정보 수정시 아이디, 닉네임 사용할 수 없다는 메시지창이 뜨고 정보 수정을
할 수가 없네요. 저만 그런가요?
할 수가 없네요. 저만 그런가요?
rumi717
12년 전
좋아요~
10년 전
와우 감사합니다~ 잘 쓸게욤~
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3189 |
|
12년 전 | 6700 | |
| 3188 | 12년 전 | 4369 | ||
| 3187 | 12년 전 | 5645 | ||
| 3186 | 12년 전 | 5234 | ||
| 3185 | 12년 전 | 4849 | ||
| 3184 | 12년 전 | 4814 | ||
| 3183 | 12년 전 | 3867 | ||
| 3182 | 12년 전 | 6997 | ||
| 3181 |
skpal
|
12년 전 | 6374 | |
| 3180 | 12년 전 | 5741 | ||
| 3179 | 12년 전 | 5185 | ||
| 3178 | 12년 전 | 4029 | ||
| 3177 |
soul5932
|
12년 전 | 6475 | |
| 3176 |
다케미카코
|
12년 전 | 3737 | |
| 3175 |
soul5932
|
12년 전 | 12916 | |
| 3174 | 12년 전 | 11141 | ||
| 3173 | 12년 전 | 5300 | ||
| 3172 | 12년 전 | 6047 | ||
| 3171 | 12년 전 | 5501 | ||
| 3170 | 12년 전 | 5483 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기