SMF Development > Fixed or Bogus Bugs

พบ Bug ในการ Edit หัวข้อครับ

(1/2) > >>

terdsak:
    ผมลองเพิ่งใช้  SMF ได้ไม่นานครับ และก็เจอ Bug ที่ค่อนข้างเห็นได้ชัดคือ
ผมตั้งหัวข้อยาวๆ พอผม Submit แล้วมาวันนึง ผมอยากแก้ไขข้อความข้างในกระทู้

ผมก็กด Edit ปรากฏว่าตอนที่มัน Save แล้วมันจะตัดหัวข้อบางส่วนทิ้ง แล้วห้อยตัวอักษรประหลาดๆต่อท้าย

ผมใช้ Encoding แบบ utf-8  และคิดว่าปัญหาน่าจะเกิดจากการ Post ข้อมูลกลับคืนโดย Ajax

อยากให้เพื่อนๆช่วยกันแก้ไข Bug ข้อนี้ด้วยครับ

terdsak:
Step แรกครับ ผมตั้งหัวข้อกระทู้จำลองขึ้นมา จะเห็นว่าหัวข้อ "อยากเลี้ยงลูกแมว แต่ที่บ้านมีหมาอยู่ อยู่ 4 ตัวน่ะค่ะ ทำไงดี"  ยังเป็นปรกติดีอยู่

[ไฟล์แนบถูกลบโดยผู้ดำเนินการ]

terdsak:
พอผมกดแก้ไข หรือ Edit หัวข้อ จะพบว่าใน Textbox มันได้เปลี่ยนหัวข้อไปเป็น "อยากเลี้ยงลูกแมว แต่ที่บ้านมีหมาอยู่ อ&" เสียแล้ว

[ไฟล์แนบถูกลบโดยผู้ดำเนินการ]

terdsak:
จากรูปหัวข้อจะเพี้ยนไปแล้วครับ  อยากให้เพื่อนๆช่วยกันลองดูนะครับ ผมก็จะพยายามไล่โค้ดเหมือนกันครับ

[ไฟล์แนบถูกลบโดยผู้ดำเนินการ]

terdsak:
เจอแล้วครับ เป็นเพราะ field "subject" ใน table "smf_messages" มันเป็น TINYTEXT ครับ
 ซึ่งผม Query โดยใช้ MySQL Query Browser ลอง query ข้อมูลขึ้นมาดูมันจะเก็บอักษรในลักษณะ html encode ครับ
เช่น

--- โค้ด: ---อยากเลี้ยงลูกแมว แต่ที่บ้านมีหมาอยู่ อยู่สองตัว ทำไงดีคะ
--- ปิดโค้ด ---
ซึงมันจะเก็บข้อมูลได้แค่ 255 byte เท่านั้น

ผมเลยเอาสคริปต์ sql ดังนี้ไปรัน เพื่อเปลี่ยนฟิลด์นี้ให้เป็น MEDIUMTEXT

--- โค้ด: ---ALTER TABLE `micnet_smf`.`smf_messages` MODIFY COLUMN `subject` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
--- ปิดโค้ด ---

ปรากฎว่าเวลาแก้ไขแล้วหัวข้อไม่เปลี่ยนแปลงครับ ได้ผล

ตัวผมเองก็ไม่อยากแก้ด้วยวิธีนี้เหมือนกันอะครับ เพราะมันดูถึกไปหน่อย แต่หากไปยุ่งกับ code ของมันก็ยุ่งยากปวดหัวเหมือนกัน
และก็มีข้อสงสัยอีกอย่างคือ ทำไมมันต้องเก็บ ข้อมูลในรูปแบบ html encode ด้วย ซึ่งข้อเสียของมันคือ query ขึ้นมาแล้วอ่านไม่รู้เรื่องครับ

นำร่อง

[0] ดัชนีข้อความ

[#] หน้าถัดไป

ไปที่เวอร์ชันเต็ม