Chapter 7 Doking의 BLOG 사용자 로그인 페이지 구현이
완료되었습니다. 이제 사용자는 웹 사이트에 로그인하여 메모를 게시하고 메모에 답할 수 있습니다.
사용자 로그인이 올바른지 확인한 후 페이지는 사용자 로그인 후의 모습으로 변경됩니다.
(1) bkblog.dwt.aspx 템플릿을 열고, 왼쪽 열에 yhtab 테이블을 삽입한 후, 그림 7-1의 검은색 원 안과 같이 디자인한다.
(2) YH 테이블 쿼리에 대한 데이터 세트 yhlog를 삽입하여 사용자 로그인이 올바른지 확인합니다.
①그림 7-2와 같이 데이터 세트 yhlog를 필터로 설정합니다.
그림 7-1 테이블 yhtab의 설계도
그림 7-2 데이터 세트 yhlog 삽입
② "고급" 버튼을 클릭하면 그림 7-3과 같이 고급 데이터 세트 모드로 전환됩니다.
그림 7-3 데이터 세트 yhlog 삽입
③ 그림과 같이 매개변수 "+"를 클릭하여 "Edit 매개변수" 대화상자를 띄우고 이름을 "@Logpas"로 입력한 후 유형으로 "WChar"를 선택합니다. 7-4.
그림 7-4 Logpass에 참여하기 위해 추가
④ 그림 7-5와 같이 "Create" 버튼을 클릭하면 "Logpass"라는 이름의 "Generate Value" 대화상자가 나타나며 소스로 "Form Variable"을 선택한다.
그림 7-5 값 생성 대화 상자
⑤ "확인"을 클릭하여 설정을 저장하고 데이터 세트 yhlog 대화 상자로 돌아갑니다. SQL 문을 수정하면 수정 결과는 그림 7-6과 같다.
그림 7-6 데이터셋 yhlog 수정
(3) <html> 태그 앞에 그림 7-7의 빨간색 원 안에 표시된 코드를 삽입합니다.
그림 7-7 함수 uselog 정의
(4) bkblog.dwt.aspx 템플릿의 데이터 세트 yhlog 아래에 있는 YHNAME 필드를 페이지의 임의 위치로 드래그한 다음 그 뒤에 있는 데이터 세트 yhlog 아래에 있는 YHID 필드를 드래그합니다.
<%# yhlog.FieldValue("YHNAME", Container) %><%# yhlog.FieldValue("YHID", Container) %>
위 코드를
다음과 같이
변경합니다:<%# uselog(yhlog.FieldValue(" YHNAME", Container),yhlog .FieldValue("YHID", Container)) %>
(5) ZT 테이블 쿼리에 대한 데이터 세트 bjre를 삽입하고 사용자가 게시한 총 학습 노트 수를 반환합니다.
① 그림 7-8과 같이 데이터 세트를 "Filter"로 설정하고, 필터 필드는 YHID, 필터 방식은 입력 값으로 설정합니다.
그림 7-8 데이터셋 bjre 삽입
② "고급"을 클릭하여 고급 데이터셋 모드로 전환한 후 그림 7-9와 같이 SQL을 수정한다.
그림 7-9 데이터 세트 bjre 수정
③"Edit" 버튼을 클릭하고 텍스트 필드에서 YHID를 session("USEID")으로 변경하면 그림 7-10과 같습니다.
그림 7-10 데이터 세트 바이어의 매개변수 편집
④ "OK" 키를 누른 후, "OK" 키를 누르면 데이터 세트 바이어가 완료됩니다.
(6) HF 테이블 쿼리에 대한 데이터 세트 plre를 삽입하고 사용자가 게시한 총 연구 노트 수를 반환합니다. 다른 쿼리 테이블을 제외하고 다른 설정은 데이터 세트 bjre와 동일합니다(먼저 데이터 세트 plre를 복사하여 붙여넣은 후 수정할 수 있음).
(7) 데이터 세트 bjre 아래의 Eprl100 필드를 yhtab 테이블의 "Post a note:" 뒤로 끌어 놓습니다. 데이터 세트 plre 아래의 필드 Eprl100을 테이블 yhtab의 "Post a reply:" 뒤로 끌어 놓습니다.
(8) yhtab 테이블에서 "사용자 정보" 앞으로 커서를 이동하고 ASP.NET 바로가기 메뉴에서 "데이터 바인딩"을 클릭하면 그림 7-11과 같습니다.
그림 7-11 바인딩된 데이터 삽입
그림 71의 빨간색 수직선에 커서를 두고 다음을 입력합니다. session("USENAME")
(9) 디자인 보기로 돌아가서 테이블 yhtab에 "Publish New Notes"에 대한 하이퍼링크를 만듭니다. : .. /ztfb.aspx
테이블 yhtab에서 "정보 수정"에 대한 하이퍼링크를 생성합니다: ../yhsg.aspx
결과는 그림 7-12에 표시됩니다.
그림 7-12 테이블 yhtab 수정
(10) 테이블 yhtab을 선택하고, 코드뷰로 돌아가서 "Ctrl+X"를 누르거나 [Edit] 메뉴에서 "Cut"을 선택, 기존 방법: 새로 생성된 메모장에 붙여넣기 또는 Word 문서에서.
(11) 디자인 뷰로 돌아와서 테이블 로그탭을 선택하고, 그림 7-13과 같이 빨간색 세로선 위치로 커서를 이동시킨다.
그림 7-13 그림 7-14의 빨간색 원과 같이 커서 위치
(12)로 이동하여 코드를 입력합니다.
그림 7-14 <form> 레이블 앞에 코드 삽입
(13) 그림 7-15의 빨간색 원 안에 표시된 것처럼 Yhlogfrm 종료 태그 </form> 뒤로 커서를 이동하여 코드를 입력합니다.
그림 7-15 태그 뒤에 코드 삽입 </form>
(14) <%end if%> 코드 앞, <% else %> 뒤에 7단계에서 잘라낸 테이블 yhtab을 붙여넣습니다.
(15) bkblog.dwt.aspx 템플릿을 저장합니다. bkblog.dwt.aspx 템플릿을 기반으로 모든 웹 페이지를 열고 새로 추가된 데이터 세트 yhlog, bjre, plre를 복사하여 [서버 동작]의 bkblog.dwt.aspx 템플릿에 붙여넣습니다. 그런 다음 3단계와 같이 코드를 삽입하면 OK입니다!
(16) 사용자 로그인 전 그림 7-16과 같이, 사용자 로그인 성공 후 그림 7-17과 같이 IE 브라우저에서 index.aspx를 검색합니다. ASP.NET은 gb2312 인코딩 전송을 지원하지 않는다는 점을 기억하세요. 수정이 필요합니다. 이전 장에서 언급했으므로 앞으로는 당황하지 마세요.
그림 7-16 사용자 로그인 전
그림 7-17
사용자 로그인 후 알림: 독자의 학습을 용이하게 하기 위해 튜토리얼은 모듈로 나누어져 있습니다. 실제로 모든 기능은 처음부터 템플릿에서 수행되어야 하며, 특히 템플릿에 삽입되어야 하는 데이터 세트와 헤더 로더는 후속 수정 후에 웹 페이지를 업데이트할 수 없기 때문입니다.
사용자는 로그인 후 각 학습노트에 답변 메시지를 게시할 수 있습니다.
(1) hf.aspx를 열고 yhplfrm 형식을 삽입한 다음 Hftab 테이블을 삽입합니다. ID가 HFNAME인 서버 텍스트 영역 컨트롤을 삽입합니다. ID가 plbottom인 버튼을 비활성화로 설정하면 그림 7-18에 표시됩니다.
그림 7-18 Hftab 테이블 관련 디자인
(3) 테이블 Hftab의 "name:" 뒤에 데이터 세션("usename")을 바인딩합니다("사용자 정보" 앞에 사용자 이름을 바인딩하는 방법은 7.1의 8단계와 같습니다). ).
(4) Ztre 데이터 세트 아래의 ZTNAME 필드를 HFNAME 텍스트 상자로 드래그합니다. HFNAME 텍스트 상자의 속성 창에서 초기 값을
<%# Ztre.FieldValue("ZTNAME", Container) %>
로 변경합니다.
<%# "RE:"&Ztre.FieldValue("ZTNAME", Container) %>
(5) plbottom 버튼을 선택하고 마우스 오른쪽 버튼을 클릭한 후 상태 표시줄 <input # plbottom>을 선택하고 팝업에서 "Edit Label"을 선택합니다. 그림 7-19에 표시된 것처럼 -up 바로가기 메뉴가 표시됩니다.
그림 7-19 <input # plbottom> 빠른 편집 태그 선택
(6) 팝업 <input # plbottom> 빠른 편집 태그에서
비활성화="true"
를
비활성화=<%# iif((session( "USENAME ")<>nothing),false,true) %>
결과는 그림 7-20에 나와 있습니다.
그림 7-20 <input # plbottom> 편집 라벨 바로가기는
plbottom 버튼을 설정합니다. 이 버튼은 사용자가 로그인하기 전에는 비활성화되고 사용자가 로그인한 후에 사용할 수 있게 됩니다.
(4) 레코드 서버 삽입 동작을 추가하고, yhplfrm 형식의 값을 제출하고, 삽입 테이블을 HF로 선택하면 기타 설정이 그림 7-21에 표시됩니다.
그림 7-21 삽입 레코드 서버 동작 추가
그림 7-21에서는 HFID, HFTIME, YHID 및 ZTID 필드가 값을 가져오지 않음을 볼 수 있습니다. HFID 필드는 자동 번호이며 데이터베이스는 자동으로 레코드에 값을 추가합니다. HFTIME 필드의 기본값은 Access에서 date()로 설정되어 있으므로 데이터베이스는 새로 추가된 레코드에 오늘 날짜를 자동으로 추가합니다. YHID 필드는 로그인한 사용자의 ID 코드이고, ZTID 필드는 게시할 노트의 ID입니다. 따라서 YHID 필드에는 로그인한 사용자의 ID 코드를 추가하고, ZTID 필드에는 게시할 노트의 ID 코드를 추가해야 합니다.
(5) 코드뷰로 돌아가 그림 7-22에서 검정색으로 선택된 부분과 같이 레코드 삽입을 위한 코드(dkconn, HF)를 찾습니다.
그림 7-22 레코드 삽입을 위한 코드 찾기(dkconn, HF)
(6) 코드를
CommandText='<%# "INSERT INTO HF (HFNAME, HFTEXT) VALUES (?, ?,)" %>'
로 변경합니다:
CommandText ='<%# "INSERT INTO HF (HFNAME, HFTEXT, ZTID, YHID) VALUES (?, ?, ?, ?)" %>'
(7) 순서대로 매개변수 추가:
<Parameter Name="@ZTID" 값 = '<%# Ztre.FieldValue("ZTID", 컨테이너) %>' Type="Integer" />
<Parameter Name="@YHID" Value='<%# SESSION("USEID") %>' Type= " Integer" />
결과는 그림 7-23에 표시됩니다.
그림 7-23 레코드(dkconn, HF) 코드 삽입 수정 결과
(8) 응답 메시지를 게시하기 전에 제목과 내용이 비어 있는 응답 메시지가 게시되지 않도록 응답 제목과 내용을 확인해야 합니다. 섹션 6.2의 필수FieldValidato 유효성 검사 컨트롤을 삽입하는 방법을 참조하고 각각 HFNAME 텍스트 상자 및 HFTEXT 텍스트 영역 컨트롤에 필수FieldValidato 유효성 검사 컨트롤을 추가합니다.
(9) 사용자가 답변 메시지를 게시하면 스터디 노트의 전체 답변 수가 자동으로 1씩 증가해야 합니다. 즉, ZT 테이블 아래의 HFZS 필드가 자동으로 1씩 증가해야 합니다.
① [Server Behavior] 패널에서 "Update Record" 서버 비헤이비어를 삽입하고, 업데이트 테이블을 ZT로 설정하고, 일시적으로 yhplfrm 형식에서 제출된 값을 설정하고, 일시적으로 설정합니다. 'HFZS'는 'HFTEXT'에서 값을 가져옵니다(as '정수') ;임시 가정: 'ZTID'는 'HFTEXT'를 '정수'로 사용하여 레코드를 선택합니다.
② 왜 모두 임시입니까? 이는 Dreamweaver에서 자동으로 일부 코드를 먼저 생성하여 나중에 수정할 수 있도록 하는 것입니다. 먼저 코드 보기로 전환하여 업데이트 레코드의 원래 코드(dkconn,ZT)를 찾고 다음 코드를 찾습니다.
<Parameter Name="@HFZS" Value='<%# IIf((Request.Form("HFTEXT"" ) <> 없음 ), Request.Form("HFTEXT"), "") %>' Type="Integer" />
<Parameter Name="@ZTID" Value='<%# IIf((Request.Form(" HFTEXT") < > Nothing), Request.Form("HFTEXT"), "") %>' Type="Integer" />
다음으로 변경:
<Parameter Name="@HFZS" Value='<%# Ztre. FieldValue(" HFZS", 컨테이너)+1 %>' Type="Integer" />
<Parameter Name="@ZTID" Value='<%# session("ztanw") %>' Type="Integer" />
(10) hf.aspx를 저장합니다.
로그인 후 응답 메시지와 함께 새로운 연구 노트를 게시할 수 있습니다.
(1) bkblog.dwt.aspx 템플릿에서 생성된 새로운 동적 웹 페이지 ztfb.aspx를 생성하고 본체 편집 가능 영역에 1개의 열과 5개의 행이 있는 ztfb 테이블을 삽입합니다.
(2) 데이터 세트 zthb를 추가하고 필터를 YHID로 설정하며 매개변수를 단계 변수 USENAME으로 설정합니다. 설계는 그림 7-24에 나와 있습니다.
그림 7-24 데이터 세트 zthb 추가
(3) 데이터 세트 아래의 해당 필드를 테이블 ztfb로 드래그합니다. 방법은 4.2절의 방법을 참조하십시오.
(4) hf.aspx를 열고 yhplfrm 양식을 복사하여 웹 페이지 ztfb.aspx에 있는 zthb 테이블의 다섯 번째 행에 붙여넣고 HFNAME 텍스트 상자를 지우고 필요한 수정을 수행합니다. 결과는 그림 7에 표시됩니다. 25.
그림 7-25 테이블 ztfb의 디자인
(2) 텍스트 상자 HFNAME의 이름을 ZTNAME으로 바꾸고 HFTEXT의 텍스트 영역을 ZTTEXT로 이름을 바꿉니다.
(3) 테이블 zthb의 첫 번째, 두 번째, 세 번째 행을 데이터 세트 zthb의 반복 영역으로 두고, 테이블의 네 번째 행에 데이터 세트 네비게이션을 삽입합니다.
(4) 목록/메뉴 LMID를 삽입하고 속성 창에서 목록 값을 클릭한 후 팝업 목록 값 대화 상자에서 프로젝트 라벨을 다음과 같이 입력합니다. 값: 1, "확인"을 누릅니다. 키(그림 7-26 참조).
그림 7-26 LMID 목록 값 대화 상자
(5) 목록/메뉴 LMIDl을 선택한 상태로 유지하고, 코드 보기로 전환하고, 목록/메뉴 LMID의 원본 코드를 찾고, 데이터 세트 menuda 아래에서 LMID 필드를 끌어서 데이터를 다음으로 바꿉니다. 그림 7-27에 표시된 대로 값은 1 과 같습니다.
그림 7-27 데이터 세트 menuda 아래에 LMID 필드를 드래그 앤 드롭합니다.
(6) 데이터 세트 menuda 아래에 LM 필드를 드래그하고 "design item"을 교체합니다. 결과는 그림 7-28에 표시됩니다.
그림 7-28 데이터 세트 menuda 아래에 LM 필드를 드래그합니다.
(7) 그림 7-3-5의 빨간색 원 안에 있는 코드를 선택하고 이를 데이터 세트 menuda의 반복 영역으로 정의합니다. 결과는 다음과 같습니다. 그림 7-29.
그림 7-29"레코드 삽입" 서버 비헤이비어를 추가하기 위해
목록(8)에서 데이터 세트 메뉴와 반복 영역을 정의하고
해당 설정은 그림 7-30에 표시됩니다.그림 7-30 "Insert Record" 서버 비헤이비어 추가
(9) 코드 보기로 전환하여 삽입 레코드의 원본 코드(dkconn, ZT)를 찾고 다음 코드를 찾습니다.
CommandText='<%# "INSERT INTO ZT(LMID, ZTNAME, ZYTEXT) ) VALUES (?, ?, ?)" %>'
다음으로 변경:
CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT,YHID) VALUES (?, ?, ?, ?)" %>'
( 10) 매개변수 추가:
<Parameter Name="@YHID" Value='<%# session("USEID") %>' Type="Integer" />
결과는 그림 7-31과 같습니다.
그림 7-31 레코드 삽입을 위한 원본 코드(dkconn, ZT) 수정
사용자 정보 수정 페이지의 디자인은 기본적으로 사용자 등록 페이지의 디자인과 동일합니다.
(1) 등록 페이지 yhlogok.aspx를 열고 yhsg.aspx로 저장한 후 적절하게 수정하면 그림 7-32와 같습니다.
그림 7-32 yhsg.aspx 페이지 디자인
(2) 그림 7-33과 같이 "레코드 삽입(dkconn, YH)" 서버 동작을 삭제하고 yhsg 데이터 세트를 추가합니다.
그림 7-33 데이터 세트 yhsg 삽입
(3) 데이터 세트 yhsg 아래의 관련 필드를 해당 텍스트 상자에 바인딩합니다. 결과는 그림 7-34와 같습니다.
그림 7-34 관련 텍스트 상자에 동적 텍스트 바인딩
(4) 업데이트 레코드 서버 동작 추가, 일시적으로 설정: 'YHID' 및 'YHNAME'을 'Integer'로 설정하여 레코드를 선택하면 결과가 그림 7-35에 표시됩니다.
그림 7-35 업데이트 기록 서버 동작 추가
(5) 업데이트 기록의 원본 코드에서 다음 코드를 찾습니다.
<Parameter Name="@YHID" Value='<%# IIf((Request.Form("YHNAME") < > Nothing), Request.Form("YHNAME"), "") %>' Type="Integer" />
다음으로 변경:
<Parameter Name="@YHID" Value='<%# IIf((Not Session( "USEID") Is Nothing), Session("USEID"), "") %>' Type="Integer" />
(6) yhsg.aspx를 저장합니다.