2010-03-17 5 views
0

오류 로그에이 오류가 더 많이 나타납니다. 나는이 오류에 대해 이야기하면서 여기서 질문을 읽었지만, 나는 그들이하고 싶은 것을 언급하지 않았다. (아래 참조). 내가 선호하는 순서대로 세 가지 옵션을 고려하고잠재적으로 위험한 Request.Form 값이 감지되었습니다. 사전에 이러한 오류 처리 또는 사실 이후

:

1) (내가 그 도움이된다면, 거의 독점적으로 formviews 사용) 양식을 제출할 때 잠재적으로 위험한 문자가 발견 될 경우, 자동으로 빼내야 제출하십시오.

2) 양식을 제출할 때 잠재적으로 위험한 문자가 감지되면 사용자에게 경고하고 다시 시도하기 전에 수정하도록하십시오.

3) 예외가 발생한 후 처리하여 사용자에게 경고합니다.

첫 번째 두 가지 옵션 중 하나가 전 세계적으로 다소 원활하게 수행 될 수 있기를 기대합니다 ... 제 3 단계에서는 이미 가지고있는 Try-Catch 블록의 톤을 변경해야합니다. 가능하지만 노동 집약적. 나는 가능하다면 모든 것에 대해 사전 대책을 강구하고 모든 예외를 피할 것입니다.

아마도 # 1에 대한 한 가지 접근 방법은 삽입/업데이트 이벤트 중에 formview의 모든 텍스트 입력 필드를 반복 할 수있는 코드 블록을 작성하고 문자를 제거하는 것입니다. 나는 그걸로 괜찮지 만, 이것을 달성하기 위해 모든 Insert/Update 이벤트를 크게 변경하지 않아도됩니다. 아니면 그냥 텍스트 검사/삭제를 할 다른 클래스를 만들고 각 Insert/Update 이벤트에 코드 한 줄만 삽입하면됩니다. 누구나 도움이 될 수있는 접근법에 대한 예제 코드를 제시 할 수 있다면.

아이디어 나 정보를 제공해 주셔서 감사합니다. 나는 다른 솔루션에도 분명히 열려 있습니다. 이것들은 오직 마음에 온 3 가지입니다. 요청 유효성 검사를 해제하고 싶지는 않다고 말할 수 있습니다.

답변

1

# 2 또는 # 3을 선호합니다. # 1에서는 사용자가 모르는 사이에 입력 한 내용을 변경합니다.

양식의 제출 이벤트에 연결하여 편집 가능한 입력란을 반복하고 온 전성 검사를 수행 할 수 있습니다.

oprion # 3의 경우 Page 클래스의 OnError 메서드를 재정 의하여 문제를 나타내는 사용자 지정 오류 메시지를 제공 할 수 있습니다. (또한 ELMAH 또는 Application_Error 이벤트를 사용하여 이러한 오류를 처리 할 수 ​​있습니다.

유효성 검사를 수행 할 때 클라이언트 쪽뿐만 아니라 서버 쪽에서도 접근하는 것이 좋습니다.

+0

"양식의 이벤트 제출을 진행하고 편집 가능한 필드를 반복하고 온 전성 검사를 수행 할 수 있습니다." 이 코드 예제가 있습니까? # 3을 살펴볼 것입니다. – Albert

+0

http://www.eggheadcafe.com/articles/20041016.asp 섹션 : 프로그래밍 방식으로 __doPostBack을 호출하는 양식 제출 방지 모든 필드를 반복하려면 document.getElementsByTagName – Ramesh

1

많은 경우 훌륭한 기능을하는 간단한 솔루션은 텍스트 상자에 영숫자 문자 만 허용 할 수 있습니다. 허락하신다면, 당신이 기대하시는 텍스트의 큰 얼룩에는 효과가 없을 것입니다. 그러나 단순한 것들에 대해서는 매력처럼 작동합니다.

양식 제출시 필드에 존재하는 영숫자가 아닌 문자를 확인하고 일부 자바 스크립트로 경고 대화 상자를 표시하는 것은 매우 간단합니다.

물론 제출 된 값을 사용하기 전에 서버에서 동일한 검사를 실행하십시오.

+0

"양식 제출시 필드에 존재하는 영숫자가 아닌 문자를 확인하고 일부 자바 스크립트로 경고 대화 상자를 표시하는 것은 매우 간단합니다." 유일한 문제는 어떻게 구현합니까? 자바 스크립트를 통해 모든 텍스트 입력 필드를 확인하는 방법에 대한 코드 예제가 있습니까? 각 양식의 각 텍스트 입력 영역 (각 필드의 필드 이름 등)에 대해 사용자 정의 코드를 작성할 수 없습니다. 그게 영원히 걸릴 것입니다 ... 그리고 나는이 하나의 작업을 수행하기 위해 많은 코드를 변경하고 싶지 않을 것입니다. – Albert

+0

일반적으로이 동작을 적용 할 각 필드에 CSS 클래스를 추가 한 다음 자바 스크립트에서 클래스의 모든 요소를 ​​가져 와서 동일한 논리를 적용하도록합니다. 어떤 종류의 클라이언트 측 라이브러리를 사용하고 있습니까? jQuery를 사용하는 것은 매우 간단합니다 : $ ('.CLASS')를 사용하여 모든 요소의 콜렉션을 가져 와서 반복하고, .val()을 호출하여 현재 필드 값을 가져 와서 다음과 같이 확인하십시오. http : //www.coderanch.com/t/119775/HTML-JavaScript/alphanumeric-validation. –

관련 문제