บทที่ 7 การใช้งานหน้าเข้าสู่ระบบของผู้ใช้ BLOG ของ Doking
ได้เสร็จสิ้นการลงทะเบียนผู้ใช้แล้ว ขณะนี้ผู้ใช้สามารถเข้าสู่ระบบเว็บไซต์และโพสต์บันทึกและตอบกลับบันทึกย่อได้
การเข้าสู่ระบบของผู้ใช้ หลังจากการตรวจสอบถูกต้อง หน้าจะเปลี่ยนเป็นลักษณะที่ปรากฏหลังจากผู้ใช้เข้าสู่ระบบ
(1) เปิดเทมเพลต bkblog.dwt.aspx แทรกตาราง yhtab ในคอลัมน์ด้านซ้าย และออกแบบตามที่แสดงในวงกลมสีดำในรูปที่ 7-1
(2) แทรกชุดข้อมูล yhlog เกี่ยวกับการสืบค้นตาราง YH เพื่อตรวจสอบว่าการเข้าสู่ระบบของผู้ใช้นั้นถูกต้อง
1. ตั้งค่าชุดข้อมูล yhlog เพื่อกรอง ดังแสดงในรูปที่ 7-2
รูปที่ 7-1 เขียนแบบการออกแบบตาราง yhtab
รูปที่ 7-2 ใส่ชุดข้อมูล yhlog
2 คลิกปุ่ม "ขั้นสูง" เพื่อสลับไปยังโหมดชุดข้อมูลขั้นสูง ดังแสดงในรูปที่ 7-3
รูปที่ 7-3 ใส่ชุดข้อมูล yhlog
3 คลิกพารามิเตอร์ "+" เพื่อเปิดกล่องโต้ตอบ "แก้ไขพารามิเตอร์" กรอกชื่อเป็น "@Logpas" และเลือกประเภท "WChar" ดังแสดงในรูป 7-4.
รูปที่ 7-4 เพิ่มเพื่อเข้าร่วมใน Logpass
④คลิกปุ่ม "สร้าง" เพื่อเปิดกล่องโต้ตอบ "สร้างค่า" ชื่อ "Logpass" และเลือก "ตัวแปรแบบฟอร์ม" เป็นแหล่งที่มา ดังแสดงในรูปที่ 7-5
รูปที่ 7-5 กล่องโต้ตอบสร้างค่า
⑤ คลิก "ตกลง" เพื่อบันทึกการตั้งค่าและกลับสู่กล่องโต้ตอบชุดข้อมูล yhlog แก้ไขคำสั่ง SQL และผลการแก้ไขจะแสดงในรูปที่ 7-6
รูปที่ 7-6 แก้ไขชุดข้อมูล yhlog
(3) ก่อนแท็ก <html> ให้ใส่โค้ดที่แสดงในวงกลมสีแดงในรูปที่ 7-7
รูปที่ 7-7 กำหนดฟังก์ชัน uselog
(4) ลากฟิลด์ YHNAME ใต้ชุดข้อมูล yhlog ในเทมเพลต bkblog.dwt.aspx ไปยังตำแหน่งใดก็ได้บนเพจ จากนั้นลากฟิลด์ YHID ใต้ชุดข้อมูล yhlog หลังจากนั้น โค้ด เป็นดังนี้:
<%# yhlog.FieldValue("YHNAME", Container) %><%# yhlog.FieldValue("YHID", Container) %>
เปลี่ยนโค้ดข้างต้นเป็น:
<%# uselog(yhlog.FieldValue(" YHNAME", Container),yhlog .FieldValue("YHID", Container)) %>
(5) แทรกชุดข้อมูล bjre เกี่ยวกับการสืบค้นตาราง ZT และส่งกลับจำนวนบันทึกการศึกษาทั้งหมดที่เผยแพร่โดยผู้ใช้
1. ตั้งค่าชุดข้อมูลเป็น "Filter" ช่องตัวกรองคือ: YHID และวิธีการกรองคือ: ค่าอินพุต ดังแสดงในรูปที่ 7-8
รูปที่ 7-8 ใส่ชุดข้อมูล bjre
2 คลิก "ขั้นสูง" สลับไปที่โหมดชุดข้อมูลขั้นสูง และแก้ไข SQL ดังแสดงในรูปที่ 7-9
รูปที่ 7-9 แก้ไขชุดข้อมูล bjre
คลิกปุ่ม "แก้ไข" และเปลี่ยน YHID เป็น session("USEID") ในช่องข้อความ ผลลัพธ์จะแสดงในรูปที่ 7-10
รูปที่ 7-10 แก้ไขพารามิเตอร์ของชุดข้อมูล bire
④ กดปุ่ม "OK" จากนั้นกดปุ่ม "OK" เพื่อเสร็จสิ้นชุดข้อมูล
(6) แทรกชุดข้อมูล plre เกี่ยวกับการสืบค้นตาราง HF และส่งกลับจำนวนบันทึกการศึกษาทั้งหมดที่เผยแพร่โดยผู้ใช้ ยกเว้นตารางเคียวรีที่แตกต่างกัน การตั้งค่าอื่นๆ จะเหมือนกับชุดข้อมูล bjre (คุณสามารถคัดลอกและวางชุดข้อมูล plre ก่อน แล้วจึงแก้ไขได้)
(7) ลากฟิลด์ Eprl100 ใต้ชุดข้อมูล bjre ไปด้านหลัง "Post a note:" ในตาราง yhtab; ลากฟิลด์ Eprl100 ใต้ชุดข้อมูล plre ไปด้านหลัง "โพสต์การตอบกลับ:" ในตาราง yhtab
(8) เลื่อนเคอร์เซอร์ไปหน้า "User Information" ในตาราง yhtab แล้วคลิก "Bind Data" ใต้เมนูทางลัดของ ASP.NET ผลลัพธ์จะแสดงในรูปที่ 7-11
รูปที่ 7-11 แทรกข้อมูลที่ผูกไว้
วางเคอร์เซอร์ไว้ที่เส้นแนวตั้งสีแดงในรูปที่ 71 แล้วป้อน: session("USENAME")
(9) กลับไปที่มุมมองการออกแบบและสร้างไฮเปอร์ลิงก์ไปที่ "Publish New Notes" ในตาราง yhtab : .. /ztfb.aspx
สร้างไฮเปอร์ลิงก์เพื่อ "แก้ไขข้อมูล" ในตาราง yhtab: ../yhsg.aspx
ผลลัพธ์จะแสดงในรูปที่ 7-12
รูปที่ 7-12 การแก้ไขตาราง yhtab
(10) เลือกตาราง yhtab กลับไปที่มุมมองโค้ด กด "Ctrl+X" หรือเลือก "Cut" ในเมนู [Edit] วิธีเก่า: วางลงใน Notepad ที่สร้างขึ้นใหม่ หรือในเอกสาร Word
(11) กลับไปที่มุมมองการออกแบบ เลือกแท็บบันทึกของตาราง และเลื่อนเคอร์เซอร์ไปที่ตำแหน่งของเส้นแนวตั้งสีแดง ดังแสดงในรูปที่ 7-13
รูปที่ 7-13 เลื่อนไปที่ตำแหน่งเคอร์เซอร์
(12) และป้อนโค้ด ดังแสดงในวงกลมสีแดงในรูปที่ 7-14
รูปที่ 7-14 ใส่โค้ดหน้าป้าย <form>
(13) เลื่อนเคอร์เซอร์ไปหลังแท็กปิด Yhlogfrm </form> และใส่โค้ด ดังแสดงในวงกลมสีแดงในรูปที่ 7-15
รูปที่ 7-15 ใส่โค้ดหลังแท็ก </form>
(14) วางตาราง yhtab ที่ตัดในขั้นตอนที่ 7 ก่อนโค้ด <%end if%> และหลัง <% else %>
(15) บันทึกเทมเพลต bkblog.dwt.aspx เปิดหน้าเว็บทั้งหมดตามเทมเพลต bkblog.dwt.aspx และคัดลอกและวางชุดข้อมูลที่เพิ่มใหม่ yhlog, bjre และ plre ในเทมเพลต bkblog.dwt.aspx ใน [Server Behavior] จากนั้นใส่โค้ดตามขั้นตอนที่ 3 เท่านี้ก็เรียบร้อย!
(16) ค้นหา index.aspx ในเบราว์เซอร์ IE ดังแสดงในรูปที่ 7-16 ก่อนการเข้าสู่ระบบของผู้ใช้ และดังแสดงในรูปที่ 7-17 หลังจากผู้ใช้เข้าสู่ระบบสำเร็จ โปรดจำไว้ว่า ASP.NET ไม่รองรับการส่งผ่านการเข้ารหัส gb2312 จำเป็นต้องได้รับการแก้ไข มันถูกกล่าวถึงในบทที่แล้ว ดังนั้นอย่าตัวสั่นในอนาคต
รูปที่ 7-16 ก่อนที่ผู้ใช้จะเข้าสู่ระบบ
รูปที่ 7-17
คำเตือนหลังจากผู้ใช้เข้าสู่ระบบ: เพื่ออำนวยความสะดวกในการเรียนรู้ของผู้อ่าน บทช่วยสอนจะแบ่งออกเป็นโมดูลต่างๆ ในความเป็นจริง ฟังก์ชันทั้งหมดต้องทำในเทมเพลตตั้งแต่ต้น โดยเฉพาะชุดข้อมูลและตัวโหลดส่วนหัวที่ต้องแทรกลงในเทมเพลต เนื่องจากสิ่งเหล่านี้ไม่สามารถอัปเดตหน้าเว็บได้หลังจากการแก้ไขในภายหลัง
หลังจากเข้าสู่ระบบ ผู้ใช้สามารถโพสต์ข้อความตอบกลับไปยังบันทึกการศึกษาแต่ละรายการได้
(1) เปิด hf.aspx แทรกแบบฟอร์ม yhplfrm แล้วแทรกตาราง Hftab แทรกตัวควบคุมกล่องข้อความเซิร์ฟเวอร์ในตารางด้วย ID HFNAME; แทรกตัวควบคุมพื้นที่ข้อความเซิร์ฟเวอร์ด้วย ID HFTEXT ปุ่มที่มี ID plbottom ตั้งค่าเป็นปิดการใช้งาน และผลลัพธ์จะแสดงในรูปที่ 7-18
รูปที่ 7-18 การออกแบบที่เกี่ยวข้องของตาราง Hftab
(3) Bind data session ("usename") กับหลัง "name:" ในตาราง Hftab (วิธีการดังแสดงในขั้นตอนที่ 8 ของ 7.1 เพื่อผูกชื่อผู้ใช้ก่อน "user information" ).
(4) ลากฟิลด์ ZTNAME ใต้ชุดข้อมูล Ztre ไปยังกล่องข้อความ HFNAME ในหน้าต่างคุณสมบัติของกล่องข้อความ HFNAME ให้เปลี่ยนค่าเริ่มต้น:
<%# Ztre.FieldValue("ZTNAME", Container) %>
เป็น:
<%# "RE:"&Ztre.FieldValue("ZTNAME", Container) %>
(5) เลือกปุ่ม plbottom คลิกขวาและเลือกแถบสถานะ <input # plbottom> และเลือก "Edit Label" ในป๊อปอัป - ขึ้นเมนูทางลัด ดังแสดงในรูปที่ 7-19 แสดง
รูปที่ 7-19 เลือกแท็กการแก้ไขด่วน <input # plbottom>
(6) ในป๊อปอัป <input # plbottom> แท็กการแก้ไขด่วน ให้เปลี่ยน:
Disable="true"
เป็น:
Disable=<%# 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 มีค่าเริ่มต้นที่ตั้งเป็น date() ใน Access ดังนั้นฐานข้อมูลจะเพิ่มวันที่ของวันนี้ลงในบันทึกที่เพิ่มใหม่โดยอัตโนมัติ ฟิลด์ YHID คือรหัส ID ของผู้ใช้ที่เข้าสู่ระบบ และฟิลด์ ZTID คือ ID ของบันทึกย่อที่จะเผยแพร่ ดังนั้นจึงต้องเพิ่มรหัส ID ของผู้ใช้ที่เข้าสู่ระบบลงในฟิลด์ YHID และจะต้องเพิ่มรหัส ID ของบันทึกย่อที่จะเผยแพร่ลงในฟิลด์ ZTID
(5) กลับไปที่มุมมองโค้ดและค้นหาโค้ดสำหรับแทรกเรคคอร์ด (dkconn, HF) ดังแสดงในส่วนที่เลือกสีดำในรูปที่ 7-22
รูปที่ 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" Value = '<%# Ztre.FieldValue("ZTID", คอนเทนเนอร์) %>' Type="Integer" />
<ชื่อพารามิเตอร์="@YHID" Value='<%# SESSION("USEID") %>' ประเภท= " Integer" />
ผลลัพธ์ดังรูปที่ 7-23
รูปที่ 7-23 ผลการแก้ไขการแทรกรหัสบันทึก (dkconn, HF)
(8) ก่อนที่จะเผยแพร่ข้อความตอบกลับ จะต้องตรวจสอบชื่อการตอบกลับและเนื้อหาการตอบกลับเพื่อป้องกันการเผยแพร่ข้อความตอบกลับที่มีชื่อเรื่องว่างเปล่าหรือเนื้อหาว่างเปล่า อ้างถึงวิธีการแทรกตัวควบคุมการตรวจสอบ RequiredFieldValidato ในส่วน 6.2 และเพิ่มตัวควบคุมการตรวจสอบ RequiredFieldValidato ลงในกล่องข้อความ HFNAME และตัวควบคุมพื้นที่ข้อความ HFTEXT ตามลำดับ
(9) เมื่อผู้ใช้โพสต์ข้อความตอบกลับ จำนวนการตอบกลับทั้งหมดในบันทึกการศึกษาจะต้องเพิ่มขึ้น 1 โดยอัตโนมัติ กล่าวคือ ฟิลด์ HFZS ใต้ตาราง ZT จะต้องเพิ่มขึ้น 1 โดยอัตโนมัติ
1 ในแผง [Server Behavior] แทรกพฤติกรรมเซิร์ฟเวอร์ "Update Record" ตั้งค่าตารางอัปเดตเป็น ZT ตั้งค่าที่ส่งชั่วคราวจากแบบฟอร์ม yhplfrm ตั้งค่าชั่วคราว: 'HFZS' รับค่าจาก 'HFTEXT' (ตาม 'จำนวนเต็ม') ; สมมติฐานชั่วคราว: '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") < > ไม่มี), Request.Form("HFTEXT"), "") %>' Type="Integer" />
เปลี่ยนเป็น:
<Parameter Name="@HFZS" Value='<%# Ztre. FieldValue(" HFZS", คอนเทนเนอร์)+1 %>' Type="Integer" />
<ชื่อพารามิเตอร์="@ZTID" Value='<%# session("ztanw") %>' Type="Integer" />
(10) บันทึก hf.aspx
หลังจากเข้าสู่ระบบ ผู้ใช้สามารถเผยแพร่บันทึกการศึกษาใหม่นอกเหนือจากการตอบกลับข้อความ
(1) สร้างเว็บเพจไดนามิกใหม่ ztfb.aspx ที่สร้างจากเทมเพลต bkblog.dwt.aspx และแทรกตาราง ztfb ด้วยหนึ่งคอลัมน์และห้าแถวในพื้นที่ที่แก้ไขได้ของ mainbody
(2) เพิ่มชุดข้อมูล zthb ตั้งค่าตัวกรองเป็น YHID และตั้งค่าพารามิเตอร์เป็นตัวแปรสเตจ USENAME การออกแบบจะแสดงในรูปที่ 7-24
รูปที่ 7-24 การเพิ่มชุดข้อมูล zthb
(3) ลากเขตข้อมูลที่เกี่ยวข้องภายใต้ชุดข้อมูลไปยังตาราง ztfb สำหรับวิธีการ โปรดดูวิธีการในส่วนที่ 4.2
(4) เปิด hf.aspx คัดลอกแบบฟอร์ม yhplfrm วางลงในแถวที่ห้าของตาราง zthb ในหน้าเว็บ ztfb.aspx ล้างกล่องข้อความ HFNAME และทำการแก้ไขที่จำเป็น ผลลัพธ์จะแสดงในรูปที่ 7- 25.
รูปที่ 7-25 การออกแบบตาราง ztfb
(2) เปลี่ยนชื่อกล่องข้อความ HFNAME เป็น ZTNAME และพื้นที่ข้อความ HFTEXT เป็น ZTTEXT
(3) ให้แถวแรก ที่สอง และสามของตาราง zthb เป็นพื้นที่ซ้ำของชุดข้อมูล zthb จากนั้นแทรกการนำทางชุดข้อมูลในแถวที่สี่ของตาราง
(4) แทรกรายการ/เมนู LMID คลิกค่ารายการในหน้าต่างคุณสมบัติ และในกล่องโต้ตอบค่ารายการป๊อปอัป ให้ป้อนป้ายกำกับโครงการเป็น: รายการออกแบบ; ดังแสดงในรูปที่ 7-26
รูปที่ 7-26 กล่องโต้ตอบค่ารายการ LMID
(5) เลือกรายการ/เมนู LMIDl ไว้ สลับไปที่มุมมองโค้ด ค้นหารหัสต้นฉบับของรายการ/เมนู LMID ลากฟิลด์ LMID ใต้เมนูชุดข้อมูล และแทนที่ข้อมูลด้วย ค่าเท่ากับ 1 ดังแสดงในรูปที่ 7-27
รูปที่ 7-27 ลากและวางฟิลด์ LMID ใต้ชุดข้อมูลเมนูดา
(6) ลากฟิลด์ LM ใต้ชุดข้อมูลเมนูดา และแทนที่ "รายการออกแบบ" ผลลัพธ์จะแสดงในรูปที่ 7-28
รูปที่ 7-28 ลากฟิลด์ LM ใต้ชุดข้อมูลเมนูดา
(7) เลือกโค้ดในวงกลมสีแดงในรูปที่ 7-3-5 และกำหนดให้เป็นพื้นที่ซ้ำของชุดข้อมูลเมนูดา ผลลัพธ์จะแสดงใน รูปที่ 7-29.
รูปที่ 7-29 กำหนดพื้นที่การทำซ้ำชุดข้อมูลในรายการ
(8) เพื่อเพิ่มลักษณะการทำงานของเซิร์ฟเวอร์ "Insert Record" และการตั้งค่าจะแสดงในรูปที่ 7-30
รูปที่ 7-30 เพิ่มพฤติกรรมเซิร์ฟเวอร์ "Insert Record"
(9) สลับไปที่มุมมองโค้ด ค้นหาโค้ดต้นฉบับของ insert record (dkconn, ZT) ค้นหาโค้ด:
CommandText='<%# "INSERT INTO ZT (LMID, ZTNAME, ZYTEXT) ) ค่า (?, ?, ?)" %>'
เปลี่ยนเป็น:
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) ลบลักษณะการทำงานของเซิร์ฟเวอร์ "Insert record (dkconn, YH)" และเพิ่มชุดข้อมูล yhsg ดังแสดงในรูปที่ 7-33
รูปที่ 7-33 ใส่ชุดข้อมูล yhsg
(3) ผูกฟิลด์ที่เกี่ยวข้องภายใต้ชุดข้อมูล yhsg ลงในกล่องข้อความที่สอดคล้องกัน ผลลัพธ์จะแสดงในรูปที่ 7-34
รูปที่ 7-34 ผูกข้อความแบบไดนามิกเข้ากับกล่องข้อความที่เกี่ยวข้อง
(4) เพิ่มพฤติกรรมเซิร์ฟเวอร์บันทึกการอัปเดต ตั้งค่าชั่วคราว: 'YHID' และ 'YHNAME' เป็น 'จำนวนเต็ม' เพื่อเลือกบันทึก ผลลัพธ์จะแสดงในรูปที่ 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") ไม่ใช่อะไรเลย), เซสชัน("USEID"), "") %>' Type="Integer" />
(6) บันทึก yhsg.aspx