6장: Doking의 BLOG 사용자 등록 페이지 구현
누군가가 발견했습니다: 사용자가 메모와 답글을 어디에 게시해야 합니까? 이것이 6장과 7장에서 다룰 질문입니다. 이 장에서는 주로 사용자 등록 페이지의 구현을 설명합니다.
6.1.1 템플릿 bkblog.dwt.aspx 페이지 수정
(1) 템플릿 bkblog.dwt.aspx를 열고 왼쪽 열에 Lefttab 테이블을 삽입한 후 첫 번째 행에 Yhlogfrm 폼을 삽입하고 Yhlogfrm 형식의 테이블 logtab을 열고 관련 텍스트 상자, 텍스트 영역 및 버튼을 삽입합니다. 결과는 그림 6-1-1에 표시됩니다.
그림 6-1-1 템플릿의 사용자 로그인 디자인
(2) 작성자에 해당하는 텍스트 상자의 이름을 Logname으로 지정하고, 비밀번호에 해당하는 텍스트 상자의 이름을 지정하고 유형을 비밀번호로 변경합니다. 버튼을 "없음"으로 변경합니다. "로그인" 버튼의 동작을 "양식 제출"로 변경합니다.
(3) "Register" 버튼을 선택하고 [Behavior] 패널에서 URL에 동작을 추가한 후 팝업 대화 상자에 그림 6과 같이 "../yhinlog.aspx" 링크를 입력합니다. -1-2 :
그림 6-1-2 URL로 이동하는 동작 추가
(4) 템플릿을 저장하고 모든 웹 페이지를 업데이트합니다.
6.1.2 등록 페이지 디자인
(1) bkblog.dwt.aspx 템플릿으로 생성된 새로운 ASP.NET VB 동적 페이지 yhinlog.aspx를 생성하고, 본체의 편집 가능한 영역에 Yhinfrm 양식을 삽입한 후 yhinlog를 작성하고 관련 설계를 수행하면 그림 6-1-3과 같습니다.
그림 6-1-3 테이블 yhinlog 디자인
(2) 사용자 이름에 해당하는 텍스트 상자를 선택하고 레이블 패널로 전환하여 "CSS/Accessibility"를 확장하고 ID에 YHNAME을 입력하고 "Unclassified"를 확장하고 runat를 입력합니다. server 에서 그림 6-1-4와 같이 YHNAME 텍스트 상자를 서버 컨트롤로 변경합니다.
그림 6-1-4 텍스트 상자 라벨 수정
(3) 등 비밀번호에 해당하는 텍스트 상자는 YHPASS, 비밀번호 확인에 해당하는 텍스트 상자는 REPASS, QQ 코드에 해당하는 텍스트 상자는 다음과 같습니다. YHQQ라는 이름과 해당 텍스트 상자를 이메일로 지정합니다. 텍스트 상자의 이름을 YHEMAIL로 지정하고, 홈 페이지의 해당 텍스트 상자의 이름을 YHINDEX로 지정하고, 모든 텍스트 상자를 서버 컨트롤로 변경합니다.
(4) Yhinfrm 형식을 선택하고 서버 컨트롤로 변경한 후 yhinlog.aspx를 저장합니다.
6.1.3 등록 페이지 디자인 완성
(1) bkblog.dwt.aspx 템플릿에서 새로운 동적 웹 페이지 yhlogok.aspx를 생성하고, 본체 편집 가능 영역에 행 3개와 열 1개로 구성된 테이블 로고를 삽입하고, 두 번째 행에 "Welcome"이라는 텍스트를 입력한 후 클릭합니다. ASP.NET 바로 가기 메뉴 "데이터 바인딩"에서 "Trimmed Form Element"를 클릭하고 그림 6-1-5에 표시된 위치로 커서를 이동한 다음 "YHNAME"을 입력합니다.
그림 6-1-5 잘라낸 폼 요소 삽입
(2) 디자인 화면으로 돌아가서 계속해서 "Donking's BLOG!"라는 텍스트를 입력하고 테이블 로고를 디자인하면 그림 6-1-6과 같다.
그림 6-1-6 테이블 로고 디자인
(3) "Home" 버튼을 선택하고 [Behavior] 패널에서 해당 URL로 이동하는 동작을 추가한 후 팝업 대화 상자에 링크를 "index"로 입력합니다. .aspx", yhlogok.aspx 저장
사용자가 잘못된 등록 정보를 입력하는 것을 방지하기 위해 사용자 등록 정보를 표준화하고 검증해야 합니다.
(1) 그림 6-2-1과 같이 yhinlog.aspx를 열고 ASP.NET 바로가기 메뉴를 열고 [추가 태그]를 클릭합니다.
그림 6-2-1 ASP.NET 바로가기 메뉴
(2) 팝업 라벨 선택기에서 "ASP.NET Label" → "Validation Server Control"을 확장하고 오른쪽 창 프레임에서 "asp:RequiredFieldvalidator"를 선택한 후 " 아래 그림 6-2-2와 같이 "삽입" 버튼을 클릭하세요.
그림 6-2-2 태그 선택기
(3) 팝업 태그 편집기에서 YHNAME 텍스트 상자에 대한 유효성 검사 컨트롤을 추가하고 그림 6-2-3과 같이 항목을 채웁니다.
그림 6-2-3 필수FieldValidator 태그 편집기
(4) 태그 선택기를 열고 ASP.NET 검증 서버 컨트롤 → CompareValidator 컨트롤을 삽입한 후 YHPASS 텍스트 상자에 REPASS 텍스트 상자로 비교 검증 컨트롤을 추가하고 관련 내용을 입력합니다. 그림 6-2 -4에 표시된 정보:
그림 6-2-4 CompareValidato 태그 편집기
(5) ASP.NET 검증 서버 컨트롤 → Rangevalidator 컨트롤을 삽입하고 YHQQ 텍스트 상자에 검증 컨트롤을 추가한 후 그림 6-2-5와 같이 관련 정보를 입력합니다.
그림 6-2-5 범위 유효성 검사기 태그 편집기
(6) ASP.NET 유효성 검사기 컨트롤 → 정규식 유효성 검사기 컨트롤을 삽입하고 YHEMAIL 텍스트 상자에 유효성 검사 컨트롤을 추가한 후 그림 6-2와 같이 다양한 항목을 입력합니다. -6, 여기서 검증 표현식 공식은 다음과 같습니다:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
그림 6-2-6 정규식 유효성 검사기 태그 편집기
(7) ASP.NET 검증 서버 컨트롤 → 정규식 유효성 검사기 컨트롤을 삽입하고 YHINDEX 텍스트 상자에 검증 컨트롤을 추가한 후 그림 6-와 같이 여러 항목을 입력합니다. 2-7, 여기서 검증 표현은 다음과 같습니다: http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
그림 6-2-7 정규식 유효성 검사기 태그 편집기
(8)에는 사용자가 등록한 사용자 이름이 중복되지 않도록 유효성 검사 컨트롤이 있어야 합니다.
① 데이터 세트 yhinlog를 추가하고 필터로 설정합니다. 필터 필드는 YHNAME이고 매개변수 변수는 형식 변수 YHNAME입니다. 해당 설정은 그림 6-2-8에 나와 있습니다.
그림 6-2-8 데이터 세트 yhinlog 삽입
② ASP.NET 검증 서버 컨트롤 → CustomValidator 컨트롤을 삽입하고 YHINDEX 텍스트 상자에 검증 컨트롤을 추가한 후 그림 6-2-9와 같이 각종 항목을 입력하고, 클라이언트 확인 기능을 포함한 내용은 다음과 같습니다:
<%# IIf(yhinlog.RecordCount>0,FALSE,TRUE) %>
그림 6-2-9 Custom Validator 태그 편집기
(9) yhinlog.aspx를 저장하고 IE에서 찾아보면 그림 6-2-10과 같은 대화상자가 나타나면 해당 파일의 루트 디렉터리에 하위 디렉터리가 없다는 의미입니다. dklog 사이트.aspnet_client에는 컨트롤을 확인하는 데 필요한 JS 스크립트 라이브러리도 없습니다. .NET Framework를 설치할 때 설치 프로그램은 기본 사이트인 c:Inetpubwwwroot의 루트 디렉터리에 복사되었습니다. c:Inetpubwwwroot에 있는 aspnet_client 하위 디렉터리를 dkblog 사이트의 루트 디렉터리에 복사하면 됩니다. 좋아요!
그림 6-2-10 필요한 JS 스크립트 라이브러리를 찾을 수 없습니다.
(1) yhinlog.aspx를 열고 [Insert Record] 서버 비헤이비어를 추가한 후 폼의 관련 데이터를 데이터 테이블 YH 설정은 그림 6-3-1에 나와 있습니다.
그림 6-3-1 [레코드 삽입] 서버 동작 추가
(2) ASP.NET은 gb2312 인코딩 전송을 지원하지 않습니다. 코드 보기로 전환하여 다음을 찾으세요.
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
ResponseEncoding="gb2312" 코드를 삭제하면 문제가 없습니다.
<%@ Page Language ="VB" ContentType="text/html"%>
(3) IE에서 사용자 등록 정보를 저장하고 찾아보고 제출한 후 Access에서 YH 테이블을 열면 제출된 중국어 정보가 모두 ??로 변경된 것을 확인할 수 있습니다. . 무엇을 해야 할까요? 걱정하지 마십시오. TASP.NET은 gb2312 인코딩 전송을 지원하지 않기 때문입니다. yhinlog.aspx를 열고, 코드 보기로 전환하고, 코드의 첫 번째 줄을 찾습니다:
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
다음으로 변경:
<%@ Page Language= "VB" ContentType="text/html" %>
즉, ResponseEncoding="gb2312"를 제거합니다. 다른 웹페이지도 이 방법에 따라 수정하여 중국어 투고정보의 오류를 방지합니다.