|
|
|
ในฟร์อมถ้ามีการแนบไฟล์ภาพส่งไป เงื่อนไขตรวจสอบอื่นๆในฟร์อมจะถูกข้ามไป รบกวนช่วยชี้แนะด้วยครับ(โค๊ดตัวอย่างด้านในครับ) |
|
|
|
|
|
|
|
Code (PHP)
function chk_pic(){ //------check file upload
//var f_name=document.forms.form1.input_name.value; //----- check pay null
var f_name=form1.input_name.value; // เขียนแบบสั้นๆ ก็ได้
// แต่เปลี่ยนชื่อ name="name" เป็น name="input_name" ป้องกันตัวแปรภาษาสับสน
// เพราะ name มันเป็นชื่อของ attribute อาจทำให้ตัวแปรคอมไพล์ สับสนได้
//if (f_name==null||'') { f_name ถูกกำหนดค่าไว้แล้ว จาก input box ไม่ทีทางเป็น null เปลี่ยนวิะีการตรวจสอบเป็น
if (f_name.length==0) {
alert("กรุณาระบุชื่อในช่องName");
//return result; ส่งค่าออกไป เท่ากับเป็นจริง ก็จะเข้าเคส submit จึงทำงานต่อได้
form1.input_name.focus(); // ไป focus ตัวที่ผิด พร้อมจะทำงานต่อ
return false; // ส่งค่า false ยุติการ submit
}
var file=form1.filepic.value;
//var patt=/(.gif|.jpg|.png|.bmp)/; รูปแบบ regular expression ผิด
var patt=/\.(gif|jpg|png|bmp)$/; // . จุด เป็นอักษรพิเศษไว้ใช้แทนอักษรอะไรก็ได้ ถ้าไม่ escape จะถือว่าอักษรอะไรก็ได้
// และถ้าคน upload ใส่ชื่อไฟล์เป็น hackjpg.exe ก้จะสามารถ upload ไฟล์ได้
// พร้อมทั้งใส่ $ เพื่อกำหนดว่าอักษรหลังสุดต้องเป็น นามสกุลไฟล์ที่กำหนด
var result=patt.test(file);
if(!result){
alert('file type is wrong (jpg,png,gif,bmp only)\n กรุณาแนบเฉพาะไฟล์ภาพ');
document.form1.filepic.focus();
return false; // อย่าลืมถ้าไม่ต้องการให้ submit ทำงานต่อ ต้องส่งค่า false กลับคืนไป
}
// return result; ไม่ต้องส่งค่าอะไรออกไป ก็ถือว่าการ summit สมบูรณ์
// ถ้าอยากให้ยุติการ submit ต้อง ส่งค่า false ออกไปเท่านั้น ถีงจะยุติการทำงานของการ submit
}
ย้ายการประกาศตัวแปร ไปตาม สเตปการทำงาน จะช่วยเรื่อง ความเร็ว หรือใช้เท่าที่จำเป็น
ปล. หาตัวครอบภาษา ให้ตรงกับภาษาที่ใช้ ถ้าไม่รู้จะใส่อะไรให้ใส่ php ครอบเอาไว้
|
ประวัติการแก้ไข 2018-10-26 08:48:33
|
|
|
|
Date :
2018-10-26 08:46:11 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|