สอบถามค่ะ ทำไมบางคน กรอกข้อมูลไม่ครบ ก็ Submit ฟอร์มได้

เริ่มโดย devilbevil, 28 กรกฎาคม 2012, 21:00:34

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

devilbevil

ทำไมบางคนกรอกข้อมูลไม่ครบ บางคนไม่กรอกข้อมูลเลย ก็ Submit Form ได้ ทั้งๆ ที่เขียนให้ Validate เอาไว้แล้ว

ไม่เข้าใจเลยค่ะ อย่างตอนนี้เพิ่งเปิดเว็บ www.prakard108.com

ก็มีบางคนกรอกข้อมูลไม่ครบ บางคนก็ไม่กรอกข้อมูล บางคนกรอกข้อมูลผิดๆ ก็ผ่านไปได้เฉยเลย

ทั้งๆ ที่เขียน Validate ด้วย jQuery เอาไว้แล้ว

รบกวนด้วยค่ะ  :wanwan031:
[direct=http://www.prakard108.com]ลงประกาศฟรี[/direct]
ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ

rtee


nst_nk


  ◤◤ รับเขียนระบบต่างๆครับ เช่น ระบบ Shipping , ร้านค้าออนไลน์ , อสังหาริมทรัพย์ , ระบบจัดการหลังบ้านทุกประเภท  สอบถามได้ครับ Line : bigznst ◥◥

danisthai

ลูกค้าหัวหมอ  ใช้เคาะSpace barแทนหรือเปล่า.  ;D 
ป.ล. ผมเคยทำนะ 55  ;D เช็คเยอะดีนัก แกล้งซะเลย

gubaaball

อ้างถึงจาก: devilbevil ใน 28 กรกฎาคม 2012, 21:00:34
ทำไมบางคนกรอกข้อมูลไม่ครบ บางคนไม่กรอกข้อมูลเลย ก็ Submit Form ได้ ทั้งๆ ที่เขียนให้ Validate เอาไว้แล้ว

ไม่เข้าใจเลยค่ะ อย่างตอนนี้เพิ่งเปิดเว็บ www.prakard108.com

ก็มีบางคนกรอกข้อมูลไม่ครบ บางคนก็ไม่กรอกข้อมูล บางคนกรอกข้อมูลผิดๆ ก็ผ่านไปได้เฉยเลย

ทั้งๆ ที่เขียน Validate ด้วย jQuery เอาไว้แล้ว

รบกวนด้วยค่ะ  :wanwan031:

Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ

ต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน  :wanwan022:

devilbevil

อ้างถึงจาก: danisthai ใน 28 กรกฎาคม 2012, 23:52:38
ลูกค้าหัวหมอ  ใช้เคาะSpace barแทนหรือเปล่า.  ;D 
ป.ล. ผมเคยทำนะ 55  ;D เช็คเยอะดีนัก แกล้งซะเลย
ไม่ใช่ Space แน่นอนค่ะ

อ้างถึงจาก: gubaaball ใน 29 กรกฎาคม 2012, 00:00:12
Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ

ต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน  :wanwan022:
ปิด Javascript ก็ไม่สามารถบันทึกได้ค่ะ เนื่องจากใช้ Javascript Submit อีกที

ตอนนี้ยังงงอยู่ ว่าทำไมมันผ่านไปบันทึกได้เลย โดยที่ไม่ตรวจสอบ

แต่เท่าที่เราทดสอบดู มันก็สามารถดักได้หมด ดูหลายๆ เบราเซอร์ก็ดักได้หมด งงเต๊ก  :wanwan031:

รบกวนด้วยค่ะ  :wanwan017:
[direct=http://www.prakard108.com]ลงประกาศฟรี[/direct]
ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ

ossytong


smapan

อ้างถึงจาก: devilbevil ใน 29 กรกฎาคม 2012, 00:34:14
อ้างถึงจาก: danisthai ใน 28 กรกฎาคม 2012, 23:52:38
ลูกค้าหัวหมอ  ใช้เคาะSpace barแทนหรือเปล่า.  ;D 
ป.ล. ผมเคยทำนะ 55  ;D เช็คเยอะดีนัก แกล้งซะเลย
ไม่ใช่ Space แน่นอนค่ะ

อ้างถึงจาก: gubaaball ใน 29 กรกฎาคม 2012, 00:00:12
Validate ด้วย jQuery เอาไว้แล้ว แค่ปิด javascript ก็ได้แล้วนิครับ

ต้องดักด้วย php ด้วยครับไม่มีหลุดแน่นอน  :wanwan022:
ปิด Javascript ก็ไม่สามารถบันทึกได้ค่ะ เนื่องจากใช้ Javascript Submit อีกที

ตอนนี้ยังงงอยู่ ว่าทำไมมันผ่านไปบันทึกได้เลย โดยที่ไม่ตรวจสอบ

แต่เท่าที่เราทดสอบดู มันก็สามารถดักได้หมด ดูหลายๆ เบราเซอร์ก็ดักได้หมด งงเต๊ก  :wanwan031:

รบกวนด้วยค่ะ  :wanwan017:


debuger เทพๆมีมากมายครับ จะเอาอะไรทำได้หมด จะใช้ jQuery Overide function เดิมยังทำได้เลยครับ  :P

ตรวจสอบทาง server only ครับ
[direct=http://cp.siamhostweb.com/cart.php?gid=1]จูมล่าโฮส สยามโฮสเว็บ[/direct] [direct=http://www.modty.com]modty.com[/direct]
[direct=http://www.apartment.in.th]รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง[/direct]
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***

banbow1234


pash

อ้างถึงจาก: banbow1234 ใน 29 กรกฎาคม 2012, 02:09:48
ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ  :wanwan004:

ตามนั้นครับ เดี่ยวนี้ User เขาไม่ได้เหมือนแต่ก่อนแล้วนะครับ ย่อมมีการพัฒนาเกิดขึ้น(ทางที่ดีหรือไม่ดีก็ดูเอา) คนที่ทำระบบก็ต้องพัฒนามากกว่า 1 ขั้นหรือมากกว่า
การป้องกันที่ดีคืออย่าตรวจสอบค่าที่เครื่อง user ครับให้ตรวจโดยส่งค่ามาที่ server ตรวจดีกกว่าครับ  :P

speeduphosting

[direct=http://www.speeduphosting.com][/direct]

NightClub

ใช้ curl ยิงตรงเลยครับ

หากไม่ดักทางฝั่งเซริฟ์เวอร์ด้วย

ก็แก้้ไม่ได้ครับ
รับจ้างเขียนโปรแกรม PHP งานมืออาชีพ เสร็จตามที่กำหนด ราคาปานกลาง
เหมาะกับผู้ที่รับงานมาแล้วส่งต่อจ๊ะ PM มาเลย

devilbevil

ที่ดิฉันสงสัย ก็คือ User ทั่วไปที่มาลง เขาสามารถข้ามพวก Validate ที่สร้างขึ้นมาได้ยังไง
(หมายถึง คนที่ไม่ได้ตั้งใจจะข้าม กรอกข้อมูลได้นิดหน่อย ก็กด Submit มันก็ผ่านไปเฉยๆ เลย)
สงสัยตรงนี้แหละค่ะ
:wanwan031:

ขอบพระคุณทุกๆ ความคิดเห็นค่ะ
:wanwan017:
[direct=http://www.prakard108.com]ลงประกาศฟรี[/direct]
ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ

Kalin

อ้างถึงจาก: banbow1234 ใน 29 กรกฎาคม 2012, 02:09:48
ยากตรงไหนครับ ดักฝัง Client แก้ได้หมดแหละ  :wanwan004:

แก้ได้หมดแบบนี้เพราะอยู่ที่เครื่องเรา  :wanwan020:
[direct=http://www.alcodetec.com]เครื่องเป่าแอลกอฮอล์[/direct]
[direct=http://www.tk-alcohol.com]เครื่องเป่าวัดแอลกอฮอล์[/direct]
[direct=http://www.tkalcohol.com]เครื่องวัดแอลกอฮอล์[/direct]

ossytong

อ้างถึงจาก: devilbevil ใน 29 กรกฎาคม 2012, 04:12:01
ที่ดิฉันสงสัย ก็คือ User ทั่วไปที่มาลง เขาสามารถข้ามพวก Validate ที่สร้างขึ้นมาได้ยังไง
(หมายถึง คนที่ไม่ได้ตั้งใจจะข้าม กรอกข้อมูลได้นิดหน่อย ก็กด Submit มันก็ผ่านไปเฉยๆ เลย)
สงสัยตรงนี้แหละค่ะ
:wanwan031:

ขอบพระคุณทุกๆ ความคิดเห็นค่ะ
:wanwan017:

ใช้ ie ตัวต่ำๆ

ie พวกนี้ บางตัว หรือตัวเดียวกัน บาง config ก็จะมีปัญหากับ javascript ทำให้ javascript ทำงานผิดพลาด แต่ยังคงทำงานต่อไปได้

rtee

ลอง 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

หาไม่เจอจริงๆ ค่ะ เรื่อง Javascript Error เพราะปกติใช้ Firebug ดู ถ้าเจอก็แก้ไขตั้งแต่ตอน Dev .. เลยงงเต็ก แต่ตอนนี้เพิ่ง Validate ฝั่ง Server เรียบร้อยแล้วค่ะ

:wanwan017:
[direct=http://www.prakard108.com]ลงประกาศฟรี[/direct]
ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ

rtee

สคริปต์เป็นความลับหรือเปล่าครับ ? ถ้าไม่งั้นลองคัดลอกบางส่วนแล้วมาโพสในนี้ดูได้นะครับ จะได้ช่วยกันดู แล้วก็ใช้ jQuery Validation ตัวไหนอยู่น่ะครับ จะได้รู้ข้อกำหนดและช่องโหว่ของสคริปต์นั้นๆด้วย

devilbevil

#18
อ้างถึงจาก: rtee ใน 31 กรกฎาคม 2012, 23:55:03
สคริปต์เป็นความลับหรือเปล่าครับ ? ถ้าไม่งั้นลองคัดลอกบางส่วนแล้วมาโพสในนี้ดูได้นะครับ จะได้ช่วยกันดู แล้วก็ใช้ 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 ปกติค่ะ
[direct=http://www.prakard108.com]ลงประกาศฟรี[/direct]
ศูนย์รวมประกาศซื้อขายสินค้าออนไลน์ทั่วประเทศ

rtee

ลองแก้ไขตามนี้นะครับ

var input = $('input.required,select.required option:selected,textarea.required');

if (!$(this).val() || $(this).val()==0 || !$(this).text())

*** เพราะว่า textarea จะคืนค่าออกมาผ่าน text() ครับ
ส่วน <select> เราต้องบอก jquery ด้วยว่าเลือกเอาตัว option ที่ selected ครับ