หัวข้อ: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: devilbevil ที่ 28 กรกฎาคม 2012, 21:00:34 ทำไมบางคนกรอกข้อมูลไม่ครบ บางคนไม่กรอกข้อมูลเลย ก็ Submit Form ได้ ทั้งๆ ที่เขียนให้ Validate เอาไว้แล้ว
ไม่เข้าใจเลยค่ะ อย่างตอนนี้เพิ่งเปิดเว็บ www.prakard108.com (http://www.prakard108.com) ก็มีบางคนกรอกข้อมูลไม่ครบ บางคนก็ไม่กรอกข้อมูล บางคนกรอกข้อมูลผิดๆ ก็ผ่านไปได้เฉยเลย ทั้งๆ ที่เขียน Validate ด้วย jQuery เอาไว้แล้ว รบกวนด้วยค่ะ :wanwan031: หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: rtee ที่ 28 กรกฎาคม 2012, 23:31:32 ต้องลอง debug ทีละจุดครับ
หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: nst_nk ที่ 28 กรกฎาคม 2012, 23:47:45 ก่อน save ลองเช็คเงื่อนไขดูอีกรอบครับผม
หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: danisthai ที่ 28 กรกฎาคม 2012, 23:52:38 ลูกค้าหัวหมอ ใช้เคาะSpace barแทนหรือเปล่า. ;D
ป.ล. ผมเคยทำนะ 55 ;D เช็คเยอะดีนัก แกล้งซะเลย หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: gubaaball ที่ 29 กรกฎาคม 2012, 00:00:12 ทำไมบางคนกรอกข้อมูลไม่ครบ บางคนไม่กรอกข้อมูลเลย ก็ Submit Form ได้ ทั้งๆ ที่เขียนให้ Validate เอาไว้แล้ว ไม่เข้าใจเลยค่ะ อย่างตอนนี้เพิ่งเปิดเว็บ [url=http://www.prakard108.com]www.prakard108.com[/url] ([url]http://www.prakard108.com[/url]) ก็มีบางคนกรอกข้อมูลไม่ครบ บางคนก็ไม่กรอกข้อมูล บางคนกรอกข้อมูลผิดๆ ก็ผ่านไปได้เฉยเลย ทั้งๆ ที่เขียน Validate ด้วย jQuery เอาไว้แล้ว รบกวนด้วยค่ะ :wanwan031: Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ ต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน :wanwan022: หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: devilbevil ที่ 29 กรกฎาคม 2012, 00:34:14 ลูกค้าหัวหมอ ใช้เคาะSpace barแทนหรือเปล่า. ;D ไม่ใช่ Space แน่นอนค่ะป.ล. ผมเคยทำนะ 55 ;D เช็คเยอะดีนัก แกล้งซะเลย Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ ปิด Javascript ก็ไม่สามารถบันทึกได้ค่ะ เนื่องจากใช้ Javascript Submit อีกทีต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน :wanwan022: ตอนนี้ยังงงอยู่ ว่าทำไมมันผ่านไปบันทึกได้เลย โดยที่ไม่ตรวจสอบ แต่เท่าที่เราทดสอบดู มันก็สามารถดักได้หมด ดูหลายๆ เบราเซอร์ก็ดักได้หมด งงเต๊ก :wanwan031: รบกวนด้วยค่ะ :wanwan017: หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: ossytong ที่ 29 กรกฎาคม 2012, 00:40:29 ถ้าคุณไม่ดักที่ฝั่ง Server ก็ไม่มีความหมาย....
หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: smapan ที่ 29 กรกฎาคม 2012, 01:21:38 ลูกค้าหัวหมอ ใช้เคาะSpace barแทนหรือเปล่า. ;D ไม่ใช่ Space แน่นอนค่ะป.ล. ผมเคยทำนะ 55 ;D เช็คเยอะดีนัก แกล้งซะเลย Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ ปิด Javascript ก็ไม่สามารถบันทึกได้ค่ะ เนื่องจากใช้ Javascript Submit อีกทีต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน :wanwan022: ตอนนี้ยังงงอยู่ ว่าทำไมมันผ่านไปบันทึกได้เลย โดยที่ไม่ตรวจสอบ แต่เท่าที่เราทดสอบดู มันก็สามารถดักได้หมด ดูหลายๆ เบราเซอร์ก็ดักได้หมด งงเต๊ก :wanwan031: รบกวนด้วยค่ะ :wanwan017: debuger เทพๆมีมากมายครับ จะเอาอะไรทำได้หมด จะใช้ jQuery Overide function เดิมยังทำได้เลยครับ :P ตรวจสอบทาง server only ครับ หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: banbow1234 ที่ 29 กรกฎาคม 2012, 02:09:48 ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ :wanwan004:
หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: pash ที่ 29 กรกฎาคม 2012, 02:22:48 ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ :wanwan004: ตามนั้นครับ เดี่ยวนี้ User เขาไม่ได้เหมือนแต่ก่อนแล้วนะครับ ย่อมมีการพัฒนาเกิดขึ้น(ทางที่ดีหรือไม่ดีก็ดูเอา) คนที่ทำระบบก็ต้องพัฒนามากกว่า 1 ขั้นหรือมากกว่า การป้องกันที่ดีคืออย่าตรวจสอบค่าที่เครื่อง user ครับให้ตรวจโดยส่งค่ามาที่ server ตรวจดีกกว่าครับ :P หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: speeduphosting ที่ 29 กรกฎาคม 2012, 03:05:09 ลองเช็ค 2 ขั้นตอนครับในส่วน javascript และ php ครับ
หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: NightClub ที่ 29 กรกฎาคม 2012, 03:14:17 ใช้ curl ยิงตรงเลยครับ
หากไม่ดักทางฝั่งเซริฟ์เวอร์ด้วย ก็แก้้ไม่ได้ครับ หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: devilbevil ที่ 29 กรกฎาคม 2012, 04:12:01 ที่ดิฉันสงสัย ก็คือ User ทั่วไปที่มาลง เขาสามารถข้ามพวก Validate ที่สร้างขึ้นมาได้ยังไง
(หมายถึง คนที่ไม่ได้ตั้งใจจะข้าม กรอกข้อมูลได้นิดหน่อย ก็กด Submit มันก็ผ่านไปเฉยๆ เลย) สงสัยตรงนี้แหละค่ะ :wanwan031: ขอบพระคุณทุกๆ ความคิดเห็นค่ะ :wanwan017: หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: Kalin ที่ 29 กรกฎาคม 2012, 09:58:41 ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ :wanwan004: แก้ได้หมดแบบนี้เพราะอยู่ที่เครื่องเรา :wanwan020: หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: ossytong ที่ 29 กรกฎาคม 2012, 16:56:15 ที่ดิฉันสงสัย ก็คือ User ทั่วไปที่มาลง เขาสามารถข้ามพวก Validate ที่สร้างขึ้นมาได้ยังไง (หมายถึง คนที่ไม่ได้ตั้งใจจะข้าม กรอกข้อมูลได้นิดหน่อย ก็กด Submit มันก็ผ่านไปเฉยๆ เลย) สงสัยตรงนี้แหละค่ะ :wanwan031: ขอบพระคุณทุกๆ ความคิดเห็นค่ะ :wanwan017: ใช้ ie ตัวต่ำๆ ie พวกนี้ บางตัว หรือตัวเดียวกัน บาง config ก็จะมีปัญหากับ javascript ทำให้ javascript ทำงานผิดพลาด แต่ยังคงทำงานต่อไปได้ หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: rtee ที่ 30 กรกฎาคม 2012, 16:16:49 ลอง debug ทีละจุด จริงๆนะ
บางทีอาจจะเป็นแค่ โครงสร้าง html ผิดหลักการ เช่น <table><form>...</table></form> (ปิด tag ผิดตำแหน่ง) หรืออื่นๆ ก็สามารถทำให้ javascript error ได้เช่นกัน และหลักเบื้องต้นของ browser ก็คือ ถ้าผิดปกติ ก็ให้ผ่านไปก่อน.. เรื่องอื่นค่อยว่ากัน ทีนี้ ส่วนของ validate jQuery นั้น ก็ลองให้มัน alert ค่าออกมาทีละ step ว่าตอนนี้ทำงานอะไรอยู่ตรงไหน เราก็จะรู้ว่า มันผิดตรงประมาณนี้นะ ก็จะแก้ไขได้ครับ ส่วน validate check อีกครั้งบน server side script อันนี้ เห็นด้วยครับ ทำไป 2 ขั้นตอนเลยครับ ทั้ง client side script (javascript) และ server side script (php,asp,jsp,...) กันผิดพลาด เพราะ hacker ต่างๆ เขาไม่ได้เจาะแค่ client side script อย่างเดียว แต่เขาจะมีเครื่องมืออีก ร้อยแปดพันเก้า ที่พร้อมจะถล่ม server เราได้ถ้าเราไม่ได้ป้องกันไว้ หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: devilbevil ที่ 31 กรกฎาคม 2012, 17:59:19 หาไม่เจอจริงๆ ค่ะ เรื่อง Javascript Error เพราะปกติใช้ Firebug ดู ถ้าเจอก็แก้ไขตั้งแต่ตอน Dev .. เลยงงเต็ก แต่ตอนนี้เพิ่ง Validate ฝั่ง Server เรียบร้อยแล้วค่ะ
:wanwan017: หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: rtee ที่ 31 กรกฎาคม 2012, 23:55:03 สคริปต์เป็นความลับหรือเปล่าครับ ? ถ้าไม่งั้นลองคัดลอกบางส่วนแล้วมาโพสในนี้ดูได้นะครับ จะได้ช่วยกันดู แล้วก็ใช้ jQuery Validation ตัวไหนอยู่น่ะครับ จะได้รู้ข้อกำหนดและช่องโหว่ของสคริปต์นั้นๆด้วย
หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก เริ่มหัวข้อโดย: devilbevil ที่ 01 สิงหาคม 2012, 05:51:51 สคริปต์เป็นความลับหรือเปล่าครับ ? ถ้าไม่งั้นลองคัดลอกบางส่วนแล้วมาโพสในนี้ดูได้นะครับ จะได้ช่วยกันดู แล้วก็ใช้ jQuery Validation ตัวไหนอยู่น่ะครับ จะได้รู้ข้อกำหนดและช่องโหว่ของสคริปต์นั้นๆด้วย ไม่ได้ใช้ Script ที่แจกๆ กันค่ะ เขียน Validate เองนี่ค่ะ โค๊ด โค๊ด: $('#btnSubmit').click(function(){ เขียนง่ายๆ ไม่มีอะไรมากค่ะ แต่อย่างที่บอกอ่ะค่ะ คือว่า คนที่เขาลงประกาศแบบข้ามขั้นตอน Validate ตรงนี้ เหมือนกับว่าไม่ได้ตั้งใจข้ามนะคะ อาจจะกรอกข้อมูลไม่ครบแล้วกด ลงประกาศ .. แต่ jQuery ที่เขียน validate เอาไว้ไม่ทำงาน จึงทำให้บรรทึกข้อมูลได้ไม่สมบูรณ์ เป็นบางท่านเท่านั้น แต่ส่วนใหญ่ก็ validate ปกติค่ะ หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: rtee ที่ 01 สิงหาคม 2012, 11:20:25 ลองแก้ไขตามนี้นะครับ
var input = $('input.required,select.required option:selected,textarea.required'); if (!$(this).val() || $(this).val()==0 || !$(this).text()) *** เพราะว่า textarea จะคืนค่าออกมาผ่าน text() ครับ ส่วน <select> เราต้องบอก jquery ด้วยว่าเลือกเอาตัว option ที่ selected ครับ หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: เฮียเล้ง ที่ 01 สิงหาคม 2012, 11:57:54 บางคนเค้าก็ปิด javascript ใน browser นะครับ
หรือบางทีมี bug เล็กๆ javascript ใน ie ก็เจ๊งครับ การ validate ฝั่ง client ยังไงก็มีปัญหา หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: ouiweb ที่ 01 สิงหาคม 2012, 12:59:00 ควรใช้ javascript เพียวนะครับ อย่้าหวังพึ่ง Ajax หรือ Jquery เลย เพราะว่าเราต้องไล่เช็ค Browser ทุกตัวทุกเวอร์ชั่น
function emailValidator(elem){ var emailExp = /^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)$/; if(elem.match(emailExp)){ return false; } else return true; } function CheckFrom(){ if(document.frm_ctu.name.value=="") { document.frm_ctu.name.focus(); return false; }else if(document.frm_ctu.email.value=="") { document.frm_ctu.email.focus(); return false; }else if (emailValidator(frm_ctu.email.value)) { frm_ctu.email.focus() ; return false; }else if(document.frm_ctu.categories.value==0) { document.frm_ctu.categories.focus(); return false; }else if(document.frm_ctu.message.value=="") { document.frm_ctu.message.focus(); return false; }else if(document.frm_ctu.code_bspam.value=="") { document.frm_ctu.code_bspam.focus(); return false; }else { return true; } } $(document).ready(function() { $("#Span_name").hide(); $("#Span_email").hide(); $("#Span_chk_EmailValidator").hide(); $("#Span_categories").hide(); $("#Span_message").hide(); $("#Span_code_bspam").hide(); $("#button-req").click(function() { var bl = true; if ($("#name").attr('value') =="") { bl = false; $("#Span_name").show(); } else { $("#Span_name").hide(); } if ($("#email").attr('value') =="") { bl = false; $("#Span_email").show(); } else { $("#Span_email").hide(); if (emailValidator($("#email").attr('value'))){ bl = false; $("#Span_chk_EmailValidator").show(); } else { $("#Span_chk_EmailValidator").hide(); } } if ($("#categories").attr('value') ==0) { bl = false; $("#Span_categories").show(); } else { $("#Span_categories").hide(); } if ($("#message").attr('value') =="") { bl = false; $("#Span_message").show(); } else { $("#Span_message").hide(); } if ($("#code_bspam").attr('value') =="") { bl = false; $("#Span_code_bspam").show(); } else { $("#Span_code_bspam").hide(); } return bl; }); }); ผมเช็ค 2 ชั้นเลยทั้ง ajax + Jquery และ JS หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: vinvin ที่ 01 สิงหาคม 2012, 13:25:53 จะเอาชัวร์ต้อง validate ที่ฝั่ง server script ด้วยครับ
ถ้าฝั่ง client scipt เจอ user เก๋าๆหน่อย กันไม่อยู่หรอกครับ ยิงผ่านสบายๆ หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: devilbevil ที่ 02 สิงหาคม 2012, 20:41:51 ลองแก้ไขตามนี้นะครับ $(this).text() ไม่ได้นะคะ ลองแล้วvar input = $('input.required,select.required option:selected,textarea.required'); if (!$(this).val() || $(this).val()==0 || !$(this).text()) *** เพราะว่า textarea จะคืนค่าออกมาผ่าน text() ครับ ส่วน <select> เราต้องบอก jquery ด้วยว่าเลือกเอาตัว option ที่ selected ครับ บางคนเค้าก็ปิด javascript ใน browser นะครับ ถ้าปิด JavaScript ใน Browser จะ Submit ไม่ได้นะคะ เพราะใช้ JavaScript Submitหรือบางทีมี bug เล็กๆ javascript ใน ie ก็เจ๊งครับ การ validate ฝั่ง client ยังไงก็มีปัญหา ส่วน Bug เล็กๆ นั้นก็อาจจะเป็นไปได้ แต่ที่ลองดูส่วนใหญ่ที่กรอกข้อมูลมาทะลุ Client Validate นั้นจะเป็น Chrome หรือ Safari ค่ะ ควรใช้ javascript เพียวนะครับ อย่้าหวังพึ่ง Ajax หรือ Jquery เลย เพราะว่าเราต้องไล่เช็ค Browser ทุกตัวทุกเวอร์ชั่น ผมเช็ค 2 ชั้นเลยทั้ง ajax + Jquery และ JS จะเอาชัวร์ต้อง validate ที่ฝั่ง server script ด้วยครับ ขอบคุณค่ะ ตอนนี้เช็ค client และ server แล้วค่ะ ถ้าข้อมูลไม่ครบจะให้กลับไปกรอกใหม่ถ้าฝั่ง client scipt เจอ user เก๋าๆหน่อย กันไม่อยู่หรอกครับ ยิงผ่านสบายๆ แต่เท่าที่ดู ยังมีคนที่ทะลุ client validate มาทุกวัน ไม่แน่ใจว่าเป็นเพราะอะไร แต่ก็ไม่ทะลุ sever validate ok แล้วค่ะ :wanwan013: ขอบคุณทุกๆ ท่านที่แชร์ความรู้นะคะ :wanwan017: หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: rtee ที่ 02 สิงหาคม 2012, 21:55:24 เอ.. แปลกจัง ผมก็ลองทำดูนะ มันก็เช็คจาก .text() นะ.. แต่ยังไงก็แล้วแต่ ก็ถือว่าปิดเคสนี้ไปได้ละ ^_^
หัวข้อ: Re: สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้ เริ่มหัวข้อโดย: devilbevil ที่ 03 สิงหาคม 2012, 09:35:49 เอ.. แปลกจัง ผมก็ลองทำดูนะ มันก็เช็คจาก .text() นะ.. แต่ยังไงก็แล้วแต่ ก็ถือว่าปิดเคสนี้ไปได้ละ ^_^ อ้างด้วย name หรือว่า id หรือว่าอ้างด้วย element อย่างเราอ้าง $('textarea') แบบนี้เลย ลองแล้วไม่ได้อ่าค่ะ แต่ถ้าอ้างแบบอื่น ผลอาจจะต่างกัน:wanwan013: |