สอบถามเกี่ยวกับ drupal HomeForumสอบถามเกี่ยวกับ drupal บุ้ง มีท่านไหนเคยใช้ drupal มั้งครับ อยากสอบถามหน่อยครับ ว่า เป็นไงมั้ง พอดีกำลังสงสัยอย่างหนึ่งครับ ว่า drupal เก็บทุกอย่างลง db อย่างเช่น ถ้าจะสร้าง ฟอร์ม drupal ก็จะเกบค่า config ทุกอยย่างลง db เช่น ขนาด textbox ผมก้เรยสงสัยว่า ทำไมจึงเกบลง db แล้วมันต่างกับเราเขียนลง html เรยรึป่าว กรกฎ วิริยะ ไม่เคยใช้ แต่ก็พอตอบคำถามนี้ได้ การเก็บฟอร์มลง db ก็ไม่ใช่เรื่องแปลกครับ สามารถทำได้ เหตุผลก็เพื่อให้ user สามารถจัดการฟอร์มข้อมูลได้ด้วยตัวเอง เช่น ต้องการฟิลด์จังหวัด ก็สามารถเพิ่มฟิลด์ จังหวัดลงฐานข้อมูลได้ เวลาแสดงฟอร์มก็ query ออกมา แล้วก็นำไปสร้าง input ที่ต้องการ ได้เลยครับ ส่วนการรับค่าก็ใช้วิธีเดียวกัน หรือจะวนรับด้วย loop ก็ได้ครับ สรุปคือ มันก็เป็นเพียงวิธีการหนึ่งเท่านั้น ซึ่งก็ให้ผลเหมือนกับฟอร์มทั่วไป จะต่างกันก็แค่ การอ่าน และ การบันทึก รวมถึงการใช้ข้อมูล ต้องเขียนคำสั่งตรวจสอบหรือจัดการเพิ่มเติมเท่านั้น เทคนิคนี้มีใช้กันทั่วไป ไม่ใช่แค่ dripal แม้แต่ wordpress ก็มีครับ แต่จะเป็น customfield ซึ่งก็คือเรื่องเดียวกันแหละครับ บุ้ง แล้วมันต่างกับเราเขียน html ป่าวครับ พวกเรื่องโหลด ของ server กรกฎ วิริยะ ก็คงต้องมากกว่าละครับ เพราะต้องมีการประมวลผลของ database ด้วย คำจำกัดความง่ายๆ ก็คือ ถ้าไม่ต้องใช้ database เว็บก็จะเร็วขึ้นครับ แล้วทำไมต้องสร้างฟอร์มด้วย database ? คงเป็นคำถามที่อยากถาม ตอบตรงๆ เขาก็คงมีความจำเป็นละครับ ถ้าเราต้องการให้ User สามารถกำหนดข้อมูลอะไรก็ได้ เราก็คงต้องใช้ customfield ยกตัวอย่างเช่น โดยปกติ ฟอร์มข้อมูลสมาชิก อาจมีแค่ ชื่อ อีเมล์ และ รหัสผ่าน แต่ถ้า User ต้องการฟิลด์ ที่อยู่ ด้วย ถ้าในระบบปกติ เราก็คงต้องแก้ไขโค้ด ตั้งแต่แก้ไขฟอร์ม ไปจนถึงการ จัดการรับค่า ซึ่งถ้าหากออกแบบโดยใช้ database เราก็แค่กำหนดค่า ที่ต้องการลงไปเท่านั้น อย่างไรก็ตาม customfield ก็คงมีข้อจำกัดค่อนข้างมาก เช่น เราอาจไม่สามารถตรวจสอบค่าที่รับมาได้ เนื่องจากเราคงไม่สามารถผูกมันกับ javascript หรือ คำสั่งตรวจสอบได้ ดังนั้น มันจึงเหมาะที่จะใช้กับข้อมูลเช่น text checkbox มากกว่า เนื่องจากมันไม่ต้องการการตรวจสอบมากนัก บุ้ง ครับตามความเข้าจัยของผม มันถูกสร้างมาให้ end user ใ้ช้ หมายถึงไม่ต้อง coding เอง แล้วมันจะมีประเด็นว่า ถึงเป็น html แล้ว มันอาจติดไวรัสได้ เหรอถึงเป็น html ก้ต้องโหลดมาจาก server อยุ่ดี อะไรทำนองนี้ครับ กรกฎ วิริยะ ในแง่ความเร็ว การไม่ใช้ฐานข้อมูล ย่อมเร็วกว่า การใช้ฐานข้อมูลอยู่แล้ว เพราะขั้นตอนต่างๆ มันสั้นลงไม่ติดต่อกับใคร เช่น การใช้ฐานข้อมูล Text ก็ยังเร็วกว่า การใช้ MySQL อยู่หลายขุมทีเดียว แต่ที่จำเป็นต้องใช้ ก็เพราะ ถ้าต้องการอะไรที่มัน ไดนามิค เราก็คงจะออกแบบเป็น HTML ไม่ได้ ประเด็นเรื่องความปลอด ถ้าเขียนให้ถูกทั้ง 2 วิธีมีความปลอดภัย และ ไม่ปลอดภัยพอๆกันครับ โดยปกติ เราจะออกแบบ ให้ฟิลด์ข้อมูล สามารถรับได้แค่ข้อความธรรมดาเท่านั้น ไม่สามารถรับ โค้ด PHP หรือ Javascript ได้ ก็ปลอดภัยเพียงพอแล้วครับ ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
การเก็บฟอร์มลง db ก็ไม่ใช่เรื่องแปลกครับ สามารถทำได้ เหตุผลก็เพื่อให้ user สามารถจัดการฟอร์มข้อมูลได้ด้วยตัวเอง เช่น ต้องการฟิลด์จังหวัด ก็สามารถเพิ่มฟิลด์ จังหวัดลงฐานข้อมูลได้ เวลาแสดงฟอร์มก็ query ออกมา แล้วก็นำไปสร้าง input ที่ต้องการ ได้เลยครับ
ส่วนการรับค่าก็ใช้วิธีเดียวกัน หรือจะวนรับด้วย loop ก็ได้ครับ
สรุปคือ มันก็เป็นเพียงวิธีการหนึ่งเท่านั้น ซึ่งก็ให้ผลเหมือนกับฟอร์มทั่วไป จะต่างกันก็แค่ การอ่าน และ การบันทึก รวมถึงการใช้ข้อมูล ต้องเขียนคำสั่งตรวจสอบหรือจัดการเพิ่มเติมเท่านั้น
เทคนิคนี้มีใช้กันทั่วไป ไม่ใช่แค่ dripal แม้แต่ wordpress ก็มีครับ แต่จะเป็น customfield ซึ่งก็คือเรื่องเดียวกันแหละครับ
คำจำกัดความง่ายๆ ก็คือ ถ้าไม่ต้องใช้ database เว็บก็จะเร็วขึ้นครับ
แล้วทำไมต้องสร้างฟอร์มด้วย database ? คงเป็นคำถามที่อยากถาม
ตอบตรงๆ เขาก็คงมีความจำเป็นละครับ ถ้าเราต้องการให้ User สามารถกำหนดข้อมูลอะไรก็ได้ เราก็คงต้องใช้ customfield ยกตัวอย่างเช่น โดยปกติ ฟอร์มข้อมูลสมาชิก อาจมีแค่ ชื่อ อีเมล์ และ รหัสผ่าน แต่ถ้า User ต้องการฟิลด์ ที่อยู่ ด้วย ถ้าในระบบปกติ เราก็คงต้องแก้ไขโค้ด ตั้งแต่แก้ไขฟอร์ม ไปจนถึงการ จัดการรับค่า ซึ่งถ้าหากออกแบบโดยใช้ database เราก็แค่กำหนดค่า ที่ต้องการลงไปเท่านั้น
อย่างไรก็ตาม customfield ก็คงมีข้อจำกัดค่อนข้างมาก เช่น เราอาจไม่สามารถตรวจสอบค่าที่รับมาได้ เนื่องจากเราคงไม่สามารถผูกมันกับ javascript หรือ คำสั่งตรวจสอบได้ ดังนั้น มันจึงเหมาะที่จะใช้กับข้อมูลเช่น text checkbox มากกว่า เนื่องจากมันไม่ต้องการการตรวจสอบมากนัก
ประเด็นเรื่องความปลอด ถ้าเขียนให้ถูกทั้ง 2 วิธีมีความปลอดภัย และ ไม่ปลอดภัยพอๆกันครับ
โดยปกติ เราจะออกแบบ ให้ฟิลด์ข้อมูล สามารถรับได้แค่ข้อความธรรมดาเท่านั้น ไม่สามารถรับ โค้ด PHP หรือ Javascript ได้ ก็ปลอดภัยเพียงพอแล้วครับ