Warning: file_get_contents(/home/gcms/public_html/skin/datas/users/goro/skin/2017/amp.css): failed to open stream: No such file or directory in /home/gcms/public_html/Gcms/Amp.php on line 32
session_start() bug ของ UTF-8

GORAGOD

session_start() bug ของ UTF-8

Warning: Cannot modify header information - headers already sent by Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent......

บางคนอาจเคยเจอ error นี่เมื่อต้องใช้ session หรือ แม้แต่ cookie กับเพจที่เป็น UTF-8 ถึงแม้ว่า page นี้ตอนที่เป็น ANSI (แบบ text ที่ใช้กับ TIS-620) จะไม่เคยมีปัญหาใดๆ ปัญหานี้เกิดจากการที่เมื่อ Save เพจเป็น UTF-8 แล้ว โปรแกรมที่ใช้ จะมีการใส่ BOM (byte order mark) ลงไปในเพจด้วย ซึ่งจะทำให้ session_start() ไม่ได้อยู่อักษรตัวแรกของเพจ ก็เลย error ครับ

ปัญหานี้มักจะเกิดหากมีการแก้ไขเพจผ่าน Notepad ของวินโดวส์ หรือด้วย Dreamwaever ครับ

การแก้ไข ก็คือให้ใช้โปรแกรม แปลง ที่จะแปลงเป็น UTF-8 ที่ไม่ใส่ BOM ครับ เช่น EditPlus โดยการเปิดไฟล์แล้ว SaveAs เป็น UTF-8 ครับ