การแก้ปัญหา "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 โดย  ใน เรียนรู้เทคโนโลยีคอมพิวเตอร์

หมายเลขบันทึก: 61327, เขียน: , แก้ไข, 2012-06-18 11:25:51+07:00 +07 Asia/Bangkok, สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ, ความเห็น: 20, อ่าน: คลิก

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

บันทึกล่าสุด 

ความเห็น (20)

  • ขอบคุณมากครับอาจารย์
  • ชอบครับได้ความรู้ดีมากเลยครับ
ดิเรก
IP: xxx.155.94.138
เขียนเมื่อ 

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

tomz
IP: xxx.8.88.201
เขียนเมื่อ 

thank you for your know how,

 

irinfared
IP: xxx.123.60.80
เขียนเมื่อ 

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

underlove
IP: xxx.7.132.220
เขียนเมื่อ 

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

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

 

กระบองเพชร
IP: xxx.26.72.192
เขียนเมื่อ 

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

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

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

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

tuta
IP: xxx.209.28.251
เขียนเมื่อ 

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

เบญจพร
IP: xxx.7.182.134
เขียนเมื่อ 

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

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

ขอบคุณค่ะ

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
เขียนเมื่อ 

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

เจตวัตร
IP: xxx.47.232.80
เขียนเมื่อ 

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

นพ
IP: xxx.123.173.247
เขียนเมื่อ 

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

pnp
IP: xxx.173.148.236
เขียนเมื่อ 

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

kitpipat
IP: xxx.120.170.126
เขียนเมื่อ 

ผมลองแก้ดูทั้ง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
เขียนเมื่อ 

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

dynaz
IP: xxx.173.159.110
เขียนเมื่อ 

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

ได้คับ

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

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

นักศึกษา
IP: xxx.173.142.114
เขียนเมื่อ 

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

Khoun vilay
IP: xxx.137.139.11
เขียนเมื่อ 

thanks...

wut
IP: xxx.230.108.61
เขียนเมื่อ 

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

channaronดg
IP: xxx.19.148.106
เขียนเมื่อ 

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