session กับ output buffering เขียนเมื่อ 2010.09.16 โดย

หลังจากเขียนถึง ปัญหาการใช้ session_start() และ header() ไว้ก่อนหน้านี้แล้ว กลับไปเจอคำถามที่มักพบเห็นได้บ่อยๆ นั่นคือปัญหาเมื่อใช้งาน session กับ output buffering นั้นทำไม่จึงเกิดข้อผิดพลาด ที่มักจะพบเห็นกันบ่อยๆคือ
<?php
ob_start();
session_start(); //<-- Error at this line
...
?>

ทั้งๆ ที่ output buffering ยังไม่ทำการส่งข้อมูลไปยัง client แต่ก็ยังเกิดข้อผิดพลาดได้อย่างไร
ปัญหาคือการสั่งให้เริ่มทำงานในส่วน output buffering ก่อนการเริ่มงาน session เนื่องจาก output buffering นั้นเป็นกระบวนการทำงานในส่วนของ content แล้วเพียงแต่ยังไม่ส่งไปยัง client เท่านั้นซึ่งทำให้ไม่สามารถสร้าง session ได้อีก ดังนั้นระหว่าง output buffering กับ session ต้องให้เริ่มงานในส่วนของ session ก่อนเสมอ

<?php
session_start();
ob_start();
...
?>





คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย