แนะนำ: การส่งแบบฟอร์มที่ จำกัด ซ้ำหลายครั้งใน ASP บนอินเทอร์เน็ตเราพบรูปแบบที่นับไม่ถ้วนทุกวันและเรายังเห็นว่าส่วนใหญ่ไม่ได้ จำกัด ผู้ใช้จากการส่งแบบฟอร์มเดียวกันหลายครั้ง การขาดข้อ จำกัด ดังกล่าวบางครั้งอาจให้ผลลัพธ์ที่ไม่คาดคิดเช่นการสมัครสมาชิกซ้ำไปยังบริการอีเมลหรือการลงคะแนนซ้ำ บทความนี้แนะนำวิธีการง่าย ๆ ในแอปพลิเคชัน ASP เพื่อป้องกันไม่ให้ผู้ใช้ส่งแบบฟอร์มเดียวกันหลายครั้งในระหว่างเซสชันปัจจุบัน
รายการแบทช์ถูกใช้อย่างกว้างขวางในฐานข้อมูลและมีวิธีการมากมายสำหรับรายการแบทช์ ต่อไปฉันจะพูดคุยเกี่ยวกับวิธีที่ฉันประสบความสำเร็จตามแอปพลิเคชันจริงของฉัน การใช้งานหลักคือแนวคิดของการรวบรวมแบบฟอร์มซึ่งใช้ข้อมูลทั้งหมดในการรวบรวมผ่านลูป เมื่อพิจารณาว่าทุกคนสะดวกสบายฉันจึงรวมเข้ากับหน้าเดียว
นี่คือรหัสเฉพาะ:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: - 'เขียนข้อมูลไปยังฐานข้อมูล sub writedata () dim reccnt, i Dim FieldName1, FieldName2, FieldName3 หรี่ Dim Sqlstr, Connstr connstr = ผู้ให้บริการ = sqloledb.1; แคตตาล็อกเริ่มต้น = myDatabase; แหล่งข้อมูล = myhon; ID ผู้ใช้ = SA; รหัสผ่าน = SET Conn = Server.CreateObject (ADODB.Connection) conn.open connstr 'สร้างการเชื่อมต่อฐานข้อมูล reccnt = request.form (stu_num) .count 'ทั้งหมดมีบันทึกทั้งหมด 'ข้อมูลอินพุตแบทช์ สำหรับ i = 1 ถึง reccnt fieldName1 = trim (request.form (fieldName1) (i)) fieldName2 = trim (request.form (fieldName2) (i)) fieldName3 = trim (request.form (fieldName3) (i)) sqlstr = แทรกลงใน myTable (fieldName1, fieldName2, fieldName3) ค่า (' sqlstr = sqlstr & fieldname1 & ',', ' sqlstr = sqlstr & fieldname2 & ',', ' sqlstr = sqlstr & fieldname3 & ') 'response.write sqlstr conn.execute (SQLSTR) ต่อไป สิ้นสุดย่อย 'แสดงอินเทอร์เฟซอินพุตแบทช์ sub inputData () dim reccnt, i - <form name = bathinputData action = method = post> - reccnt = cint (request.form (reccnt)) สำหรับ i = 1 ถึง reccnt - <ประเภทอินพุต = ชื่อข้อความ = fieldName1> <ประเภทอินพุต = ชื่อข้อความ = fieldName2> <ประเภทอินพุต = ชื่อข้อความ = fieldName3> - ต่อไป - <br> <ประเภทอินพุต = ส่งชื่อ = ค่าการกระทำ = ส่ง> </form> - สิ้นสุดย่อย 'ระบุจำนวนระเบียนที่จะป้อนเป็นแบทช์ Sub AssignhowMuch () - <! ------ ระบุจำนวนระเบียนที่จะป้อน -----------------------> <form name = form1 action = method = post> จำนวนระเบียนที่คุณต้องการป้อน: <อินพุต type = ชื่อข้อความ = reccnt> <ประเภทอินพุต = ส่งชื่อ = ค่าการกระทำ = ถัดไป >>> </form> - สิ้นสุดย่อย ถ้า request.form (การกระทำ) = ถัดไป >> จากนั้น CALL INPUTDATA () 'แสดงอินเทอร์เฟซรายการแบตช์ elseif request.form (action) = commit จากนั้นเรียก writedata () 'ข้อมูลการเขียนแบทช์ลงในฐานข้อมูล อื่น CALL AssignHowMuch () 'แสดงอินเทอร์เฟซที่ระบุจำนวนระเบียนที่จะป้อน สิ้นสุดถ้า - |
แชร์: โซลูชันสำหรับ ASP หลายแบบสอบถาม เรามักจะพบปัญหาการสืบค้นหลายครั้งและข้อความ SQL ที่ยาวนานมักจะทำให้พระสับสน โดยเฉพาะอย่างยิ่งเมื่อไคลเอ็นต์ส่วนเติมเต็มในเงื่อนไขการสืบค้นมันจะยากกว่าที่จะใช้วิธีการทั่วไป ต่อไปนี้ใช้ตัวตนอย่างชาญฉลาดโดยที่ 1 = 1 (อันที่จริงมันมีมากเพียงแค่ปล่อยให้มันมีค่าของความจริง) เพื่อแก้ปัญหานี้ TEXT SUMMARY 'TITLE TITLE'COM