การแก้ปัญหา "headers already sent by" ของ php

  ้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() ?> ไว้บรรทัดสุดท้ายสุด

 

 

  

บันทึกนี้เขียนที่ GotoKnow โดย  ใน เรียนรู้เทคโนโลยีคอมพิวเตอร์

คำสำคัญ (Tags)#php#troubleshoot#solution

หมายเลขบันทึก: 61327, เขียน: 20 Nov 2006 @ 15:43, แก้ไข, 18 Jun 2012 @ 11:25, สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ, ความเห็น: 20, อ่าน: คลิก
บันทึกล่าสุด


ความเห็น (20)

ขจิต ฝอยทอง
เขียนเมื่อ 20 Nov 2006 @ 23:48
  • ขอบคุณมากครับอาจารย์
  • ชอบครับได้ความรู้ดีมากเลยครับ
ดิเรก
IP: xxx.155.94.138
เขียนเมื่อ 02 Jan 2007 @ 00:34

ดีมากครับ
เป็นคำแนะนำที่มีประโยชน์มาก ง่ายเข้าใจใช้งานได้จริง
ขอบคุณอาจารย์มากครับ ถ้าไม่เจออาจารย์ผมคงหาทางแก้ปัญหานี้อีกนาน

tomz
IP: xxx.8.88.201
เขียนเมื่อ 31 Jan 2007 @ 01:47

thank you for your know how,

 

irinfared
IP: xxx.123.60.80
เขียนเมื่อ 20 Mar 2007 @ 08:20

เยี่ยมมากครับอาจารย์ ขอบคุณ ขอบคุณ

underlove
IP: xxx.7.132.220
เขียนเมื่อ 04 May 2007 @ 17:12

ขอบคุณมากครับชวมได้มากเลย ขอบคุณครับ

ขอบคุณค่ะคุณขจิต คุณดิเรก คุณ tomz คุณ irinfared และ คุณ underlove  ที่เข้ามาเยี่ยมและให้ข้อคิดเห็น  ดีใจค่ะที่ทราบว่าสิ่งที่ได้ทำลงไปนั้นมีประโยชน์กับผู้อื่น 

 

กระบองเพชร
IP: xxx.26.72.192
เขียนเมื่อ 17 Sep 2007 @ 18:29

รักอาจารย์ที่สุดเลย

ขอบคุณมา....กเลยครับ

ไม่งันคงอีกนานแน่ กว่าจะแก้ปัญหานี้ได้

ขอบคุณอีกครั้งครับ

tuta
IP: xxx.209.28.251
เขียนเมื่อ 25 Feb 2008 @ 16:08

ขอบคุณครับอาจารย์ถ้าไม่ได้อาจารย์ผมคงคิดหัวระ้เบิดแน่เลยครับขอบคุณค้าบบบบ

เบญจพร
IP: xxx.7.182.134
เขียนเมื่อ 17 Apr 2008 @ 18:25

สวัสดีค่ะอาจารย์

ดิฉันได้ทำการแก้ปัญหาอย่างที่อาจารย์แนะนำแล้วค่ะ แต่ก้อยังไม่หาย มีวิธีแก้ไขอย่างอื่นมั้ยคะ

ขอบคุณค่ะ

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\myWeb\chkmember.php:1) in C:\AppServ\www\myWeb\chkmember.php on line 24

chocorap
IP: xxx.151.232.70
เขียนเมื่อ 21 Aug 2008 @ 04:57

ขอบคุณมากครับ ปวดหัวกับปัญหานี้ตั้งสองวัน ขอบคุณครับ

เจตวัตร
IP: xxx.47.232.80
เขียนเมื่อ 05 Nov 2008 @ 18:49

พึ่งมาหัดลองเขียนครับ ก็เจอปัญหาเลย แต่ดีที่ได้คำแนะนำที่ดีมากของอาจารย์ ขอบคุณมากครับ

นพ
IP: xxx.123.173.247
เขียนเมื่อ 08 Mar 2009 @ 19:16

ผมก็มีเหมือนกัน เพราะใน ajax ของผม สั่ง header ไว้ใน ฟังก์ชัน ตอน load head

pnp
IP: xxx.173.148.236
เขียนเมื่อ 17 Jul 2009 @ 21:48

ขอบคุณมากๆๆครับ

kitpipat
IP: xxx.120.170.126
เขียนเมื่อ 01 Feb 2010 @ 10:32

ผมลองแก้ดูทั้ง2 วิธีแล้วคับแต่ไม่หายงงมากเลยคับมีวิธีอื่นป่ะคับ

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\myWeb\chkmember.php:1) in C:\AppServ\www\myWeb\chkmember.php on line 24

กกก
IP: xxx.136.81.151
เขียนเมื่อ 07 Mar 2010 @ 15:26

ขอบคุณมากครับ สุดยอดครับ ได้ความรู้เพิ่ม ขอบคุณจิง ๆ ครับ

dynaz
IP: xxx.173.159.110
เขียนเมื่อ 13 Mar 2010 @ 14:04

ใช้เป็น <?php @session_start(); ?>

ได้คับ

เป็นการปิดไม่ให้ แสดง error แต่ผลข้างเคียง ยังไงไม่ทราบน่ะคับ

เท่าที่ใช้งานมาก้อได้ผลดี

นักศึกษา
IP: xxx.173.142.114
เขียนเมื่อ 25 Jun 2010 @ 23:32

ขอบพระคุณมาก ๆ ครับท่านอาจารย์

Khoun vilay
IP: xxx.137.139.11
เขียนเมื่อ 12 Jul 2013 @ 10:51

thanks...

wut
IP: xxx.230.108.61
เขียนเมื่อ 29 Jan 2015 @ 12:22

ขอบคุณครับ ได้แล้ว ง่ายและใช้ได้จริง ด้วย หลายวันมาก จนบางที ผมใช้ session แทน ไปเลย

channaronดg
IP: xxx.19.148.106
เขียนเมื่อ 05 Mar 2015 @ 13:39

ขอบพระคุณมากครับ ผมนั่งงมอยู่หลายวันแล้วครับ ผมงงตรงที่เป็น Code เดียวกัน ผมทำงานอนู่ 2 เครื่อง เครื่องนึงได้ ส่วนอีกเครื่องไม่ได้ครับ ถ้าไม่ได้คำชี้แนะงม Code อีกนานครับ