เว็บไซต์ธุรกิจของวันนี้หรือเว็บไซต์ส่วนตัวมีลูกค้าที่ตรวจสอบมากขึ้น ฉันยอมรับว่ารหัสการเขียนเป็นงานที่น่าสนใจ แต่ทุกครั้งที่คุณตรวจสอบแบบฟอร์มรหัสเขียนด้วยลายมือเราหวังว่าจะปรับปรุงประสิทธิภาพการทำงานของเรา
ขึ้นอยู่กับเหตุผลอื่น ๆ เว็บแอปพลิเคชันเป็นเรื่องยากที่จะตรวจสอบการป้อนข้อมูลของผู้ใช้ รหัสเซิร์ฟเวอร์ยังต้องได้รับการตรวจสอบเพื่อความปลอดภัย
ด้านล่างเป็นพนักงานของ Microsoft
1. แม้ว่าข้อมูลข้อผิดพลาดหรือไอคอนมักจะอยู่ติดกับองค์ประกอบอินพุต แต่ก็มักจะอยู่ในเซลล์ที่แตกต่างกันของตาราง
2. มักจะมีพื้นที่ในหน้าเพื่อสรุปข้อผิดพลาดทั้งหมด
3. เว็บไซต์จำนวนมากรวมถึงสคริปต์ไคลเอนต์เพื่อให้ข้อเสนอแนะที่เร็วขึ้นในขณะที่ป้องกันการเดินทางไปกลับระหว่างเซิร์ฟเวอร์
4. เว็บไซต์จำนวนมากรวมถึงสคริปต์ไคลเอ็นต์แสดงข้อมูลเมื่อมีข้อผิดพลาด
5. ไม่เพียง แต่จะมีการตรวจสอบอินพุตข้อความเท่านั้น แต่ยังมีการตรวจสอบรายการแบบเลื่อนลงและปุ่มตัวเลือก
6. หากฟิลด์ว่างเปล่าเว็บไซต์มักจะแสดงข้อมูลหรือไอคอนที่แตกต่างกันเมื่อไม่ถูกต้อง
7. การตรวจสอบที่มีประสิทธิภาพจำนวนมากสามารถแทนที่ได้อย่างดีโดยการแสดงออกที่ใช้กันทั่วไป
8. การตรวจสอบมักจะขึ้นอยู่กับผลการเปรียบเทียบระหว่างสองอินพุต
9.90% หรือมากกว่า 90% งานตรวจสอบเป็นงานทั่วไปบางอย่างเช่นการตรวจสอบชื่อหรือการเข้ารหัสทางไปรษณีย์ เว็บไซต์ส่วนใหญ่ยังคงดูเหมือนจะทำซ้ำงานเหล่านี้
10. เนื่องจากความแตกต่างระหว่างไซต์มักจะมีขนาดใหญ่เกินไปจึงไม่สามารถหาทางออกที่สมบูรณ์แบบเพื่อจัดการงานการตรวจสอบทั้งหมดของแต่ละไซต์
หากคุณต้องการยืนยันกับเพื่อนร่วมงานของคุณว่าคุณมีวิธีการ "เจ๋ง" มากคุณสามารถห้ามค่าที่ว่างเปล่าในส่วนชื่อ
ASP.NET ประมวลผลการตรวจสอบแบบฟอร์มการตรวจสอบแบบฟอร์ม
1. ไฟล์ ASPX ถูกรวบรวมกำลังทำงานอยู่
2. ข้อมูลอินพุตของผู้ใช้
3. ทริกเกอร์เหตุการณ์ page_load
4. เปลี่ยนแอตทริบิวต์การควบคุมเว็บและแจ้งเตือนในกรณีที่ไม่มีอินพุต
5. ส่งออกหน้าด้วย HTML ไปยังผู้ใช้
6. เตือนผู้ใช้ให้ป้อนอีกครั้ง
กระบวนการ page_load
วัตถุหน้ารวมคุณลักษณะที่สำคัญและวิธีการที่เกี่ยวข้องกับการตรวจสอบของเซิร์ฟเวอร์ ตารางต่อไปนี้แสดงรายการทั้งหมดและ metheds ของคุณสมบัติ page_load
PAGE_LOAD Method Name คำอธิบาย
ISVALID (ส่วนใหญ่มักใช้) เป็นคุณลักษณะที่มีประโยชน์ที่สุด แอตทริบิวต์นี้สามารถตรวจสอบว่าแบบฟอร์มทั้งหมดมีประสิทธิภาพหรือไม่ การตรวจสอบนี้มักจะดำเนินการก่อนอัปเดตฐานข้อมูล เฉพาะวัตถุทั้งหมดของตัวตรวจสอบที่ถูกต้องแอตทริบิวต์เป็นจริงและค่าไม่ได้ถูกเก็บไว้ในแคช
การตรวจสอบความถูกต้องการรวบรวมวัตถุการตรวจสอบทั้งหมดของหน้านี้ นี่คือคอลเลกชันของวัตถุที่ใช้อินเตอร์เฟส ivalidator
วิธีการที่เรียกว่าตรวจสอบความถูกต้องในการตรวจสอบ วิธีการดำเนินการเริ่มต้นบนวัตถุหน้าคือการหันไปใช้อุปกรณ์ตรวจสอบแต่ละตัวและต้องการอุปกรณ์ตรวจสอบเพื่อประเมินตัวเอง
ใช้เพื่อตรวจสอบอุปกรณ์ตรวจสอบของแบบฟอร์ม (การควบคุมเว็บ)
EledentedFieldValidator ตรวจสอบว่าผู้ใช้ป้อนหรือเลือกเนื้อหาใด ๆ
RegantyxpressionValidator ตรวจสอบอินพุตของผู้ใช้ตามกฎ กระบวนการนี้ช่วยให้การสอบหลายประเภทสามารถใช้สำหรับการเข้ารหัสไปรษณีย์และหมายเลขโทรศัพท์
ComparValidator เปรียบเทียบการควบคุมอินพุตกับค่าคงที่หนึ่งหรือการควบคุมอินพุตอื่น ตัวอย่างเช่นสามารถใช้ในฟิลด์การตรวจสอบรหัสผ่าน นอกจากนี้ยังสามารถใช้เพื่อเปรียบเทียบวันที่และตัวเลขอินพุต
Rangevalidator นั้นคล้ายคลึงกับตัวเปรียบเทียบ
CustomValidator อนุญาตให้ผู้ใช้เขียนรหัสของตัวเองเพื่อเข้าร่วมกรอบการตรวจสอบ
ตัวอย่างคำอธิบายการทำงานของการควบคุมที่อธิบายไว้ข้างต้น
เราสร้างหน้า. aspx ที่ย่อเล็กสุดเราไม่ต้องการเอฟเฟกต์การดัดแปลงที่งดงาม
<p> กรุณากรอกรหัสผู้ใช้ใหม่และรหัสผ่าน </p>
<form runat = เซิร์ฟเวอร์>
<table>
<tr>
<td> รหัสผู้ใช้ </td>
<td> <ประเภทอินพุต = text runat = เซิร์ฟเวอร์ id = txtName> </td>
</tr>
<tr>
<td> ขั้ว </td>
<td> <อินพุตประเภท = รหัสผ่าน runat = เซิร์ฟเวอร์ id = txtpword> </td>
</tr>
<tr>
<td> โปรดป้อนรหัสผ่านอีกครั้ง </td>
<td> <อินพุตประเภท = รหัสผ่าน runat = เซิร์ฟเวอร์ ID = txTrepWord> </td>
</tr>
<tal> <br>
<ประเภทอินพุต = ส่ง runat = server id = cmdsubmit value = submit>
</form>
โปรแกรมเป็นสิ่งที่รุนแรงมากดังนั้นเราต้องเน้นว่ารายการทั้งหมดเต็มไปด้วยและเราสามารถทำเช่นนี้ได้ เพิ่ม FieldValidator ที่ต้องการต่อหน้าแต่ละฟิลด์ หากฟิลด์ว่างเปล่าเราจะต้องแสดงหมายเลขดาว (*) ที่ด้านหน้าของฟิลด์และรายงานข้อผิดพลาดถัดไป
ตัวอย่างเช่น:
<tr>
<td>
<asp: requirefield jalidator runat = เซิร์ฟเวอร์
controltovalidate = txtName
errorMessage = "ต้องการชื่อผู้ใช้"
</asp: ต้องการฟีลฟิลด์
</td>
<td> รหัสผู้ใช้: </td>
<td> <ประเภทอินพุต = text runat = เซิร์ฟเวอร์ id = txtName> </td>
</tr>
โดยไม่ต้องป้อนเนื้อหาใด ๆ "*" จะปรากฏขึ้นถัดจากฉลาก ข่าวข้อผิดพลาดปรากฏขึ้น แอตทริบิวต์ "Controltovalidate" ระบุรหัสควบคุมที่จำเป็นสำหรับการตรวจสอบ ขั้นตอนสุดท้ายคือการแสดงข้อผิดพลาดทั้งหมดที่ด้านบนของหน้า
รหัส:
<ASP: การตรวจสอบความถูกต้อง runat = server headerText = มีข้อผิดพลาดในหน้านี้:/>
จากนั้นเราต้องใช้รหัสผู้ใช้ต้องเป็น 6-10 อักขระรหัสผ่านต้องเป็นตัวอักษร 4-12 และต้องมี@#$%^&*/อักขระ
รหัส: ที่นี่เราได้เพิ่มข้อ จำกัด เกี่ยวกับความยาว ID
<td>
<input type = text runat = server id = txtName>
<ASP: RegularxpressionValidator runat = เซิร์ฟเวอร์
controltovalidate = "txtName"
errormesage = "wanlets ต้องประกอบด้วยตัวอักษร 6-10"
validationxpression = "[a-za-z] {6,10}" />> >>
</td>
จากนั้นเราต้องตรวจสอบว่ารหัสผ่านสำหรับอินพุตสองตัวนั้นเหมือนกันหรือไม่
<ASP: RegantyXpressionValidator runat = Server Display = Dynamic
controltovalidate = "txtpword"
errorMessage = "รหัสผ่านต้องมีหนึ่งใน@#$%^&*/."
ValidationExpression = ".*[@#$%^&* /เหมือน
<ASP: RegantyXpressionValidator runat = Server Display = Dynamic
controltovalidate = "txtpword"
errorMessage = "รหัสผ่านต้องเป็น 4-12 ตัวอักษรที่ไม่ได้ใช้งาน"
validationxpression = "[ /s {4,12}" />>
<asp: compareValidator runat = เซิร์ฟเวอร์
controltovalidate = txTrepword
controltocompare = txtPword
errorMessage = "รหัสผ่านไม่ตรงกัน" />
โดยค่าเริ่มต้น ComparValidator จะถูกนำมาเปรียบเทียบกับการจับคู่สตริงอย่างง่าย หากจำเป็นสามารถทำการเปรียบเทียบที่ซับซ้อนมากขึ้นเกี่ยวกับวันที่และตัวเลข
หลายประเด็นที่ต้องการความสนใจ
เกี่ยวกับไลบรารีสคริปต์
เนื่องจากการตรวจสอบสคริปต์ควบคุมเว็บอยู่ในไลบรารีสคริปต์รหัสที่ตรวจสอบโดยลูกค้าทั้งหมดจึงไม่จำเป็นต้องส่งไปยังหน้าโดยตรงแม้ว่ามันจะดูเหมือนจะทำบนพื้นผิว การอ้างอิงไฟล์สคริปต์หลักคล้ายกับต่อไปนี้:
<script language = "javascript" src = "/_ aspx/1.0.9999/script/webuivalidation.js"> </script>
โดยค่าเริ่มต้นไฟล์สคริปต์จะถูกติดตั้งในไดเรกทอรีรูทเริ่มต้นในไดเรกทอรี "_aspx" และใช้สคริปต์ที่ค่อนข้างรูทรวมถึงคำสั่งเพื่อเรียกซึ่งเริ่มต้นด้วยความลาดชันเชิงบวก การอ้างอิงแสดงให้เห็นว่าวัตถุแต่ละชิ้นไม่จำเป็นต้องรวมไลบรารีสคริปต์และหน้าทั้งหมดในคอมพิวเตอร์เดียวกันสามารถอ้างอิงไฟล์เดียวกันได้ คุณจะสังเกตเห็นว่ายังมีหมายเลขเวอร์ชันภาษาสาธารณะในเส้นทางนี้เพื่อให้รุ่นรันไทม์ที่แตกต่างกันสามารถทำงานบนคอมพิวเตอร์เครื่องเดียวกันได้
หากคุณดูไดเรกทอรีรูทเสมือนจริงเริ่มต้นคุณจะพบไฟล์และดูเนื้อหา ตำแหน่งของไฟล์เหล่านี้ระบุไว้ในไฟล์ config.web ไฟล์ config.web เป็นไฟล์ XML สำหรับการตั้งค่า ASP+ ส่วนใหญ่ ต่อไปนี้เป็นคำจำกัดความของตำแหน่งในไฟล์นี้:
<WebControls
clientsCriptSlocation = "/_ aspx/{0}/สคริปต์/"
-
กระตุ้นให้คุณอ่านสคริปต์เพื่อให้คุณสามารถเข้าใจเหตุการณ์ที่เกิดขึ้นในเชิงลึก อย่างไรก็ตามขอแนะนำให้คุณไม่แก้ไขสคริปต์เหล่านี้เนื่องจากฟังก์ชั่นของพวกเขาเชื่อมโยงอย่างใกล้ชิดกับเวอร์ชันรันไทม์เฉพาะ เมื่อมีการอัปเดตเวอร์ชันสคริปต์เหล่านี้อาจต้องได้รับการปรับปรุงตามนั้น หากโครงการเฉพาะต้องมีการเปลี่ยนแปลงก่อนอื่นให้สำรองข้อมูลสคริปต์เหล่านี้แล้วชี้โครงการของคุณไปยังไฟล์สำรองข้อมูลวิธีการคือใช้ไฟล์ config.web ส่วนตัวเพื่อแทนที่ตำแหน่งของไฟล์เหล่านี้ หากสตริงมีคำสั่งรูปแบบ "{0}" หมายเลขเวอร์ชันจะแทนที่คำสั่งเมื่อทำงาน เป็นการดีที่สุดที่จะเปลี่ยนตำแหน่งนี้เป็นการอ้างอิงที่สัมพันธ์กันหรือการอ้างอิงแบบสัมบูรณ์ ยินดีต้อนรับสู่ผู้ที่ชื่นชอบการออกแบบเว็บ