웹마스터 팁
제목 부분에 특수키 입력 못하게 막는 방법
2012.09.21 04:55
글쓰기시 제목 등에 특수키 못 쓰게 하려면...
1) 해당 스킨의 .js 파일에 해당 스크립트 추가
/* 특수문자 방지 기능 - sejin7940 */
var NN = (navigator.appName == "Netscape") ? 1: 0;
/*
키코드 33~47까지 순대대로 ! " # $ % & ' ( ) * + , - . /
키코드 58~64까지 순대대로 : ; < = > ? @
키코드 91~96까지 순대대로 [ \ ] ^ _
키코드 123~125까지 순대대로 { | }
*/
function CheckChar() {
// alert(event.keyCode);
if ( !NN ) {
if ( (event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode > 122 && event.keyCode < 126) ) {
//해당 이벤트가 일어난 키에 대한 코드 값을 확인 값을 반환 하지 않습니다.
event.returnValue = false;
}
} else {
if ( (event.which > 32 && event.which < 48) || (event.which > 57 && event.which < 65) || (event.which > 90 && event.which < 97) || (event.which > 122 && event.which < 126))
return false;
}
}
2) write_form.html 에서
제목부분 쪽에 onkeypress="CheckChar()" 를 추가하면 된다.
예를들어 xe_v3_default 의 경우라면
<input cond="$oDocument->getTitleText()" type="text" name="title" class="iText" title="{$lang->title}" value="{htmlspecialchars($oDocument->getTitleText())}" />
<input cond="!$oDocument->getTitleText()" type="text" name="title" class="iText" title="{$lang->title}" />
부분을 아래처럼 바꾸면 된다.
<input cond="$oDocument->getTitleText()" type="text" name="title" class="iText" title="{$lang->title}" value="{htmlspecialchars($oDocument->getTitleText())}" onKeypress="CheckChar()"/>
<input cond="!$oDocument->getTitleText()" type="text" name="title" class="iText" title="{$lang->title}" onKeypress="CheckChar()"/>
댓글 22
-
KTK
2012.09.21 10:39
-
sejin7940
2012.09.21 10:48
게시판 스킨을 말한건데. 레이아웃 스킨의 Js 파일에넣어도작동운 될거에요. 구리고다른값둘도막고푸면 해당 key값만 알아내셔서 저 if 문사이에넣으면될겁니다 -
KTK
2012.09.21 10:49
감사합니다~! 하지만.. 키값으로하면 초성을 등록하면 한글이 안써지겠네요.. ㅠㅠ
-
CMD
2012.09.21 15:59
초성을 막으시려면 정규식을 사용해서 /[ㄱ-ㅎ]+/로 걸러내시면 되어요~
-
KTK
2012.09.21 16:14
제가 무뇌안이다 보니 잘 이해가 가질 않습니다 ㅠㅠ 좀 도움을 주시겠습니까..
-
KTK
2012.09.26 14:59
감사한 CMD님.. 이거 도움좀 주시면 정말 감사하겠습니다.. 저는 댓글에.. 초성을 막고 싶어 죽을 지경입니다 ㅠㅠ
-
CMD
2012.09.26 16:58
방금 테스트해 봤는데 한글의 경우 키코드를 아예 주지 않네요.
도움을 드리지 못해 정말 죄송해요...
-
KTK
2012.09.26 16:59
역시 CMD님은 답변을 해주실줄 알았습니다!!! 감사합니다!!
-
CMD
2012.09.26 16:59
이용 중이신 스킨을 알려주시면 jQuery로 시도해 볼께요~
-
KTK
2012.09.26 17:07
저는 스케치북과 게시판 dx를 사용하고 있습니다 정말정말 감사합니다!!!
그리고 사랑합니다!!
-
CMD
2012.09.26 19:44
자바스크립트로는 도저히 안되서 애드온으로 만들었어요~ doc_title.zip
<?php if(!defined("__ZBXE__")) exit(); if($this->module == 'admin') return; if($called_position != 'before_module_proc' && $called_position != 'after_module_proc') return; switch(Context::get('act')) { case 'procBoardInsertDocument' : $title = Context::get('title'); if(!preg_match('/[ㄱ-ㅎ]/', $title)) return; $this->stop('제목에 한글 초성이 포함되어 있사오니 제거 후 다시 시도하여 주십시오. '); if($called_position == 'after_module_proc') $this->act = Context::get('act'); else $this->act = null; return; }
-
KTK
2012.09.26 20:07
정말 감사합니다!! ㅠㅠ 혹시 댓글로 바구려면 어떻게 해야하나요.. 완전 최고의 추석 선물이네요 감사합니다!
너무 수고가 많으셨습니다 ㅠㅠ
-
CMD
2012.09.26 20:31
이렇게 수정하세요~
<?php if(!defined("__ZBXE__")) exit(); if($this->module == 'admin') return; if($called_position != 'before_module_proc' && $called_position != 'after_module_proc') return; switch(Context::get('act')) { case 'procBoardInsertComment' : $title = Context::get('content'); if(!preg_match("/[ㄱ-ㅎ]+/", $title)) return; $this->stop('한글 초성이 포함되어 있사오니 제거 후 다시 시도하여 주십시오. '); if($called_position == 'after_module_proc') $this->act = Context::get('act'); else $this->act = null; return; }
-
KTK
2012.09.26 20:39
정말 정말 감사합니다 ㅠㅠ 사랑해요!!!
-
KTK
2012.09.26 20:45
완전 잘됩니다!!! 고맙습니다!!!
-
CMD
2012.09.26 20:46
잘 된다니 다행이예요~
-
KTK
2012.09.26 20:47
염치불구하고 마지막 질문 드릴께요!! 메시지를 팝업띄우고 확인 누르면 없어지게 하려면 어떻게 하나요... ㅠㅠ 정말 염치없네요..
한글 초성이 포함되어 있사오니 제거 후 다시 시도하여 주십시오. 맨트 팝업 확인 누르면 사라짐 댓글이다보니..
시스템 메세지 다시작성할때 뒤로가기를 해야하네요..
-
CMD
2012.09.26 20:51
alert 창 말씀하시는 거죠? 그거 확인 눌러도 댓글이 안날아가고 그대로 일텐데요?
-
KTK
2012.09.26 20:52
네 맞아요.. 댓글 안날아가도 될것 같아서요.
왜냐하면 뒤로가기 보다 백스페이스가 로딩이나 이런면에서 빠를것 같아요..
-
KTK
2012.09.26 20:53
아 잘됩니다^^ 이거 DX문제인가봐요 죄송합니다..
-
CMD
2012.09.26 20:55
아마도 DX가 룰셋을 사용해서 그런 것 같네요.
-
KTK
2012.09.26 20:56
그렇군요 룰셋이 먼지 모르지만.. 고약하네요!!
제목 | 글쓴이 | 날짜 |
---|---|---|
Admin 페이지에서 사이트맵 삭제가 안될 때 | FontBox | 2012.10.06 |
회원설정에 레이아웃 설정이 생겼습니다. 회원정보보기페이지 레이아웃 설정 가능 [2] | 똑디 | 2012.10.04 |
youtube, vimeo 자동 썸네일 생성 팁 1.5 이상 [3] | 꿈틀잉 | 2012.09.19 |
iframe 아이프레임 투명처리 | 꿈틀잉 | 2012.10.04 |
실시간 쪽지 [10] | CMD | 2012.09.20 |
제목 부분에 특수키 입력 못하게 막는 방법 [22] | sejin7940 | 2012.09.21 |
[초보팁] 게시판 하단 버튼 정리 [2] | 브레인630 | 2012.09.24 |
UTF-8에서 호환되는 사랑비 BGM 올립니다. [8] | 로로아 | 2008.10.15 |
XE스팸필터 등록 오류(1.5.3.2 적용후) [10] | 정박사닷컴 | 2012.09.11 |
관리자의 회원정보 수정 페이지에 '가입일/최근접속일' 추가하기 [6] | showjean | 2012.09.17 |
iframe을 이용한 악성코드 침투 - 치료 및 대응법 (검블러 or GENO) [8] | 미루819 | 2009.10.01 |
친절한설명! 자신의홈페이지에 간단히 음악넣기 [10] | 준봉쿠 | 2011.12.18 |
인증메일 때문에 고생하시는 분 참고하세요. [17] | 박용식 | 2010.10.14 |
1.4 에서 1.5로 게시판 마이그레이션 팁 [12] | 마음의빈자리 | 2012.07.10 |
DB네임(테이블 프리픽스) 변경 방법 phpmyadmin | 꿈틀잉 | 2012.09.12 |
startssl 에 가입하고 패널 들어갈때 인증서 못받으신분들 | 우리아기 | 2012.09.12 |
인증메일 에러 나시는 분께 드리는 글 | sorigongan | 2012.09.11 |
글 드래그, 오른쪽마우스, 글복사 한번에 막는방법 [6] | 리엔필드 | 2012.06.05 |
iframe 깨는 스크립트 입니다. [4] | HB | 2012.09.01 |
사이트 공사할 때 임시로 다른 페이지 보여주기 | 하늘종 | 2012.09.03 |
세진님 안녕하세요. 이걸이용하면 초성도 사용 못하게 할수 있을듯한대.
가령 댓글에 ㄳ, ㄱ ㅅ, 또는 ㅂㅈㄷㄱ 이선 초성도 사용못하게 할수 있을까요...
위에서 말씀하신 스킨은 레이아웃이겠지요
항상 좋은 팁 감사합니다.