้php "headers already sent by"


Warning: Cannot modify header information - headers already sent by

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

ได้รับการแสดงข้อผิดพลาดนี้เนื่องจากข้อมูล headers ส่งไปแล้วจากโค๊ดในบรรทัดอื่นก่อนหน้าโค๊ดที่ทำให้เกิดปัญหานี้

วิีธีแก้ปัญหาทำได้อยู่ 2 วิธี

1. ให้แก้ไขไฟล์ php.ini แล้วตั้งค่า output_buffering = on

หรือ output_buffering = 4096  

แต่ิวิธีนี้ไม่เหมาะสมในกรณีที่เราไม่ได้เป็นเจ้าของเซิร์ฟเวอร์  หรือเซิร์ฟเวอร์นั้นรันแอพพลิเคชั่นอื่น ซึ่งอาจจะได้รับผลกระทบจากการกำหนดค่าตัวแปรนี้ 

2. ให้ใส่โค๊ด  <? ob_start() ?> ไว้บรรทัดแรกสุด  และใส่โค๊ด <? ob_end_flush() ?> ไว้บรรทัดสุดท้ายสุด