Remove BOM (Byte order mark)
Jump to navigation
Jump to search
โปรแกรม Editor บางตัว เวลาเราบันทึกไฟล์เป็น UTF-8 ตัวโปรแกรมจะแทรก BOM (Byte order mark) เอาไว้ที่ส่วนหัวของไฟล์ด้วย ทำให้มีปัญหากับโปรแกรม PHP พวกคำสั่ง header และ session_start เพราะว่าก่อนเรียก 2 คำสั่งนี้ จะต้องไม่มี output ที่ออกมาก่อนเลย ถ้ามี BOM มาแทรกที่ตอนแรก ก็จะทำให้เกิด Error ลักษณะนี้
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/username/domains/username.com/public_html/index.php:1) in /home/username/domains/username.com/public_html/index.php on line 9
วิธีแก้ คือ ต้องลบ BOM ที่หัวไฟล์ออกครับ. แต่ถ้าใช้ Editor ทั่วๆ ไป บางทีจะมองไม่เห็นครับ วิธีที่ได้ผล 100% คือ ให้ใช้ File Manager ใน DirectAdmin มาแก้ครับ ซึ่งมีขั้นตอนดังนี้ครับ
- เปิด DirectAdmin เข้าที่เมนู File Manager
- คลิกเข้าไปตามโฟลเดอร์จนไปเจอไฟล์ที่คุณต้องการแก้ไข
- คลิกที่ Edit ตรงไฟล์ที่ต้องการแก้ไข
- คุณจะเห็นว่ามีอักขระแปลกๆ แทรกอยู่ที่หัวไฟล์ (มันคือ BOM)
- ให้ลบออกอักขระดังกล่าวออกครับ
- กดปุ่ม Save As ที่ด้านล่าง