devilbevil
คนรักเสียว
พลังน้ำใจ: 13
ออฟไลน์
กระทู้: 114
|
|
« เมื่อ: 28 กรกฎาคม 2012, 21:00:34 » |
|
ทำไมบางคนกรอกข้อมูลไม่ครบ บางคนไม่กรอกข้อมูลเลย ก็ Submit Form ได้ ทั้งๆ ที่เขียนให้ Validate เอาไว้แล้ว ไม่เข้าใจเลยค่ะ อย่างตอนนี้เพิ่งเปิดเว็บ www.prakard108.com ก็มีบางคนกรอกข้อมูลไม่ครบ บางคนก็ไม่กรอกข้อมูล บางคนกรอกข้อมูลผิดๆ ก็ผ่านไปได้เฉยเลย ทั้งๆ ที่เขียน Validate ด้วย jQuery เอาไว้แล้ว รบกวนด้วยค่ะ
|
|
|
บันทึกการเข้า
|
ลงประกาศฟรี ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ
|
|
|
rtee
Newbie
พลังน้ำใจ: 10
ออฟไลน์
กระทู้: 89
|
|
« ตอบ #1 เมื่อ: 28 กรกฎาคม 2012, 23:31:32 » |
|
ต้องลอง debug ทีละจุดครับ
|
|
|
บันทึกการเข้า
|
|
|
|
nst_nk
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 385
ออฟไลน์
กระทู้: 3,396
|
|
« ตอบ #2 เมื่อ: 28 กรกฎาคม 2012, 23:47:45 » |
|
ก่อน save ลองเช็คเงื่อนไขดูอีกรอบครับผม
|
|
|
บันทึกการเข้า
|
◤◤ รับเขียนระบบต่างๆครับ เช่น ระบบ Shipping , ร้านค้าออนไลน์ , อสังหาริมทรัพย์ , ระบบจัดการหลังบ้านทุกประเภท สอบถามได้ครับ Line : bigznst ◥◥
|
|
|
danisthai
สมุนแก๊งเสียว
พลังน้ำใจ: 47
ออฟไลน์
กระทู้: 730
|
|
« ตอบ #3 เมื่อ: 28 กรกฎาคม 2012, 23:52:38 » |
|
ลูกค้าหัวหมอ ใช้เคาะSpace barแทนหรือเปล่า. ป.ล. ผมเคยทำนะ 55 เช็คเยอะดีนัก แกล้งซะเลย
|
|
|
บันทึกการเข้า
|
|
|
|
gubaaball
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 183
ออฟไลน์
กระทู้: 1,673
|
|
« ตอบ #4 เมื่อ: 29 กรกฎาคม 2012, 00:00:12 » |
|
ทำไมบางคนกรอกข้อมูลไม่ครบ บางคนไม่กรอกข้อมูลเลย ก็ Submit Form ได้ ทั้งๆ ที่เขียนให้ Validate เอาไว้แล้ว ไม่เข้าใจเลยค่ะ อย่างตอนนี้เพิ่งเปิดเว็บ www.prakard108.com ก็มีบางคนกรอกข้อมูลไม่ครบ บางคนก็ไม่กรอกข้อมูล บางคนกรอกข้อมูลผิดๆ ก็ผ่านไปได้เฉยเลย ทั้งๆ ที่เขียน Validate ด้วย jQuery เอาไว้แล้ว รบกวนด้วยค่ะ Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ ต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน
|
|
|
บันทึกการเข้า
|
|
|
|
devilbevil
คนรักเสียว
พลังน้ำใจ: 13
ออฟไลน์
กระทู้: 114
|
|
« ตอบ #5 เมื่อ: 29 กรกฎาคม 2012, 00:34:14 » |
|
ลูกค้าหัวหมอ ใช้เคาะSpace barแทนหรือเปล่า. ป.ล. ผมเคยทำนะ 55 เช็คเยอะดีนัก แกล้งซะเลย ไม่ใช่ Space แน่นอนค่ะ Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ ต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน ปิด Javascript ก็ไม่สามารถบันทึกได้ค่ะ เนื่องจากใช้ Javascript Submit อีกที ตอนนี้ยังงงอยู่ ว่าทำไมมันผ่านไปบันทึกได้เลย โดยที่ไม่ตรวจสอบ แต่เท่าที่เราทดสอบดู มันก็สามารถดักได้หมด ดูหลายๆ เบราเซอร์ก็ดักได้หมด งงเต๊ก รบกวนด้วยค่ะ
|
|
|
บันทึกการเข้า
|
ลงประกาศฟรี ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ
|
|
|
ossytong
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 138
ออฟไลน์
กระทู้: 1,151
|
|
« ตอบ #6 เมื่อ: 29 กรกฎาคม 2012, 00:40:29 » |
|
ถ้าคุณไม่ดักที่ฝั่ง Server ก็ไม่มีความหมาย....
|
|
|
บันทึกการเข้า
|
|
|
|
smapan
|
|
« ตอบ #7 เมื่อ: 29 กรกฎาคม 2012, 01:21:38 » |
|
ลูกค้าหัวหมอ ใช้เคาะSpace barแทนหรือเปล่า. ป.ล. ผมเคยทำนะ 55 เช็คเยอะดีนัก แกล้งซะเลย ไม่ใช่ Space แน่นอนค่ะ Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ ต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน ปิด Javascript ก็ไม่สามารถบันทึกได้ค่ะ เนื่องจากใช้ Javascript Submit อีกที ตอนนี้ยังงงอยู่ ว่าทำไมมันผ่านไปบันทึกได้เลย โดยที่ไม่ตรวจสอบ แต่เท่าที่เราทดสอบดู มันก็สามารถดักได้หมด ดูหลายๆ เบราเซอร์ก็ดักได้หมด งงเต๊ก รบกวนด้วยค่ะ debuger เทพๆมีมากมายครับ จะเอาอะไรทำได้หมด จะใช้ jQuery Overide function เดิมยังทำได้เลยครับ ตรวจสอบทาง server only ครับ
|
|
|
บันทึกการเข้า
|
|
|
|
banbow1234
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 200
ออฟไลน์
กระทู้: 1,447
|
|
« ตอบ #8 เมื่อ: 29 กรกฎาคม 2012, 02:09:48 » |
|
ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ
|
|
|
บันทึกการเข้า
|
|
|
|
pash
สมุนแก๊งเสียว
พลังน้ำใจ: 47
ออฟไลน์
กระทู้: 596
|
|
« ตอบ #9 เมื่อ: 29 กรกฎาคม 2012, 02:22:48 » |
|
ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ ตามนั้นครับ เดี่ยวนี้ User เขาไม่ได้เหมือนแต่ก่อนแล้วนะครับ ย่อมมีการพัฒนาเกิดขึ้น(ทางที่ดีหรือไม่ดีก็ดูเอา) คนที่ทำระบบก็ต้องพัฒนามากกว่า 1 ขั้นหรือมากกว่า การป้องกันที่ดีคืออย่าตรวจสอบค่าที่เครื่อง user ครับให้ตรวจโดยส่งค่ามาที่ server ตรวจดีกกว่าครับ
|
|
|
บันทึกการเข้า
|
|
|
|
speeduphosting
ก๊วนเสียว
พลังน้ำใจ: 19
ออฟไลน์
กระทู้: 279
|
|
« ตอบ #10 เมื่อ: 29 กรกฎาคม 2012, 03:05:09 » |
|
ลองเช็ค 2 ขั้นตอนครับในส่วน javascript และ php ครับ
|
|
|
บันทึกการเข้า
|
|
|
|
NightClub
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 297
ออฟไลน์
กระทู้: 2,461
|
|
« ตอบ #11 เมื่อ: 29 กรกฎาคม 2012, 03:14:17 » |
|
ใช้ curl ยิงตรงเลยครับ
หากไม่ดักทางฝั่งเซริฟ์เวอร์ด้วย
ก็แก้้ไม่ได้ครับ
|
|
|
บันทึกการเข้า
|
รับจ้างเขียนโปรแกรม PHP งานมืออาชีพ เสร็จตามที่กำหนด ราคาปานกลาง เหมาะกับผู้ที่รับงานมาแล้วส่งต่อจ๊ะ PM มาเลย
|
|
|
devilbevil
คนรักเสียว
พลังน้ำใจ: 13
ออฟไลน์
กระทู้: 114
|
|
« ตอบ #12 เมื่อ: 29 กรกฎาคม 2012, 04:12:01 » |
|
ที่ดิฉันสงสัย ก็คือ User ทั่วไปที่มาลง เขาสามารถข้ามพวก Validate ที่สร้างขึ้นมาได้ยังไง (หมายถึง คนที่ไม่ได้ตั้งใจจะข้าม กรอกข้อมูลได้นิดหน่อย ก็กด Submit มันก็ผ่านไปเฉยๆ เลย) สงสัยตรงนี้แหละค่ะ ขอบพระคุณทุกๆ ความคิดเห็นค่ะ
|
|
|
บันทึกการเข้า
|
ลงประกาศฟรี ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ
|
|
|
Kalin
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 96
ออฟไลน์
กระทู้: 1,785
|
|
« ตอบ #13 เมื่อ: 29 กรกฎาคม 2012, 09:58:41 » |
|
ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ แก้ได้หมดแบบนี้เพราะอยู่ที่เครื่องเรา
|
|
|
บันทึกการเข้า
|
|
|
|
ossytong
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 138
ออฟไลน์
กระทู้: 1,151
|
|
« ตอบ #14 เมื่อ: 29 กรกฎาคม 2012, 16:56:15 » |
|
ที่ดิฉันสงสัย ก็คือ User ทั่วไปที่มาลง เขาสามารถข้ามพวก Validate ที่สร้างขึ้นมาได้ยังไง (หมายถึง คนที่ไม่ได้ตั้งใจจะข้าม กรอกข้อมูลได้นิดหน่อย ก็กด Submit มันก็ผ่านไปเฉยๆ เลย) สงสัยตรงนี้แหละค่ะ ขอบพระคุณทุกๆ ความคิดเห็นค่ะ ใช้ ie ตัวต่ำๆ ie พวกนี้ บางตัว หรือตัวเดียวกัน บาง config ก็จะมีปัญหากับ javascript ทำให้ javascript ทำงานผิดพลาด แต่ยังคงทำงานต่อไปได้
|
|
|
บันทึกการเข้า
|
|
|
|
rtee
Newbie
พลังน้ำใจ: 10
ออฟไลน์
กระทู้: 89
|
|
« ตอบ #15 เมื่อ: 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 เราได้ถ้าเราไม่ได้ป้องกันไว้
|
|
|
บันทึกการเข้า
|
|
|
|
devilbevil
คนรักเสียว
พลังน้ำใจ: 13
ออฟไลน์
กระทู้: 114
|
|
« ตอบ #16 เมื่อ: 31 กรกฎาคม 2012, 17:59:19 » |
|
หาไม่เจอจริงๆ ค่ะ เรื่อง Javascript Error เพราะปกติใช้ Firebug ดู ถ้าเจอก็แก้ไขตั้งแต่ตอน Dev .. เลยงงเต็ก แต่ตอนนี้เพิ่ง Validate ฝั่ง Server เรียบร้อยแล้วค่ะ
|
|
|
บันทึกการเข้า
|
ลงประกาศฟรี ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ
|
|
|
rtee
Newbie
พลังน้ำใจ: 10
ออฟไลน์
กระทู้: 89
|
|
« ตอบ #17 เมื่อ: 31 กรกฎาคม 2012, 23:55:03 » |
|
สคริปต์เป็นความลับหรือเปล่าครับ ? ถ้าไม่งั้นลองคัดลอกบางส่วนแล้วมาโพสในนี้ดูได้นะครับ จะได้ช่วยกันดู แล้วก็ใช้ jQuery Validation ตัวไหนอยู่น่ะครับ จะได้รู้ข้อกำหนดและช่องโหว่ของสคริปต์นั้นๆด้วย
|
|
|
บันทึกการเข้า
|
|
|
|
devilbevil
คนรักเสียว
พลังน้ำใจ: 13
ออฟไลน์
กระทู้: 114
|
|
« ตอบ #18 เมื่อ: 01 สิงหาคม 2012, 05:51:51 » |
|
สคริปต์เป็นความลับหรือเปล่าครับ ? ถ้าไม่งั้นลองคัดลอกบางส่วนแล้วมาโพสในนี้ดูได้นะครับ จะได้ช่วยกันดู แล้วก็ใช้ jQuery Validation ตัวไหนอยู่น่ะครับ จะได้รู้ข้อกำหนดและช่องโหว่ของสคริปต์นั้นๆด้วย
ไม่ได้ใช้ Script ที่แจกๆ กันค่ะ เขียน Validate เอง นี่ค่ะ โค๊ด $('#btnSubmit').click(function(){ var submit = true; var input = $('input.required,select.required,textarea.required');
input.each(function(){ if (!$(this).val() || $(this).val()==0) { submit = false; $(this).addClass('error'); } else { $(this).removeClass('error'); } }); if (submit) { $('#divConfirm').dialog('open'); } });
$("#divConfirm").dialog({ autoOpen: false, bgiframe: true, resizable: false, modal: true, overlay: { backgroundColor: '#000', opacity: 0.5 }, buttons: { 'ตกลง': function() { $("#progressbar").progressbar({value: 100}); $("#divProgressbar").dialog('open'); $('form').submit(); $(this).dialog('close'); }, 'ยกเลิก': function() { $(this).dialog('close'); } } });
เขียนง่ายๆ ไม่มีอะไรมากค่ะ แต่อย่างที่บอกอ่ะค่ะ คือว่า คนที่เขาลงประกาศแบบข้ามขั้นตอน Validate ตรงนี้ เหมือนกับว่าไม่ได้ตั้งใจข้ามนะคะ อาจจะกรอกข้อมูลไม่ครบแล้วกด ลงประกาศ .. แต่ jQuery ที่เขียน validate เอาไว้ไม่ทำงาน จึงทำให้บรรทึกข้อมูลได้ไม่สมบูรณ์ เป็นบางท่านเท่านั้น แต่ส่วนใหญ่ก็ validate ปกติค่ะ
|
|
« แก้ไขครั้งสุดท้าย: 01 สิงหาคม 2012, 06:05:19 โดย devilbevil »
|
บันทึกการเข้า
|
ลงประกาศฟรี ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ
|
|
|
rtee
Newbie
พลังน้ำใจ: 10
ออฟไลน์
กระทู้: 89
|
|
« ตอบ #19 เมื่อ: 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 ครับ
|
|
|
บันทึกการเข้า
|
|
|
|
|