Wednesday, April 11, 2012

PHP : Cannot send session cache limiter headers already sent


หากใครใช้ Notepad++ ในการเขียน PHP และมีการประกาศตัวแปร session ดังนี้


session_start();
echo "Session Start...";
?>


และเมื่อเปิด Browser แล้วพบ error ประมาณนี้ 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at xxx) in xxx





ลองตรวจดูนะครับ ว่าที่ Notepad++ นั้นตั้งค่า Encoding เป็น UTF-8 หรือไม่ 


หากใช่ ให้ทำการแก้ไขเป็น UTF-8 without BOM แล้วทำการ Save file ดังกล่าว อีกครั้ง 


แล้วลอง เปิด Browser ดูอีกที จะพบว่า error ดังกล่าว หายไป 
หรือสามารถเพิ่ม ob_start(); ในบรรทัดแรก หรือ @session_start(); ก็ได้เช่นกันครับ :)