วิธีแก้ปัญหา Warning: Cannot modify header information – headers already sent by…
Warning: Cannot modify header information – headers already sent by
ปัญหานี้เกิดจาก เรียกใช้คำสั่ง header() หลังจากมี output ส่งไปยัง client แล้ว
ดูตัวอย่างที่มีปัญหานะครับ
1.
<?php echo "Some text" ; header("Location:index.php") ; ?>
2.
<html> <?php header("Location:index.php") ; ?>
3.
<?php $variable = 10 ; ?> <?php header("Location:index.php") ; ?>
- มีคำว่า Some text ถูกส่งออกไปแล้ว
- มีคำว่า <html> ถูกส่งออกไปแล้ว
- มี white space ถูกส่งออกไปแล้ว ระหว่างบล็อก php ทั้งสอง ( white space ได้แก่ ขึ้นบรรทัดใหม่,เคาะสเปชบาร์,แท็บ โดยรวมคือช่องว่างที่มองไม่เห็น)
มีวิธีแก้ 3 วิธี
1.หาให้เจอว่ามีเอ้าพุตอะไรออกไปในบรรทัดที่ php ฟ้อง
2.ใส่คำสั่ง ob_start() ใว้บนบรรทัดแรกสุดๆ ของไฟล์ (ไม่แนะนำ)
3.เอาคำสั่งจาวาสคริปเข้าช่วยในการ redirect
หลังจากที่คุณกระทำการอะไรบางอย่างเสร็จและต้องการใช้คำสั่ง header() redirect ไปเพจอื่น ให้เปลี่ยนจากคำสั่ง header() เป็นเซตค่าตัวแปรสักตัว
$complete = "true" ;
แล้วทีนี้ตรงระหว่างแท็ก <head></head> ใส่คำสั่งนี้เข้าไป
<?php if ($complete=="true"){ ?>
<script type="text/javascript">
window.location="gbook.php";
</script>
<?php } ?>บทความน่าสนใจ
- php redirect สั่งเด้งฟ้าผ่า
- ob_start() กับคำกล่าวที่ว่า ใช้ได้แต่ไม่แนะนำ
- .note .success .warning css class
- วิธีแก้ปัญหา Parse error: syntax error, unexpected T_VARIABLE
- วิธีแก้ปัญหา Parse error: syntax error, unexpected ‘}’
Tags: PHP
มี 11 ความเห็น ในบทความเรื่อง “วิธีแก้ปัญหา Warning: Cannot modify header information – headers already sent by…”
แสดงความเห็น
Categories
- 1 week 1 Source (2)
- AppServ (10)
- Array (2)
- Codeigniter (1)
- Computer (7)
- CSS (9)
- Dreamweaver (7)
- Firefox (7)
- Form (2)
- FPDF (15)
- General (31)
- HTML (2)
- Javascript (6)
- jQuery (86)
- Mac (10)
- MySQL (15)
- Navicat (9)
- Other (58)
- PHP (97)
- PHP-function (12)
- Program (8)
- SMF (15)
- SQL (20)
- Theme (1)
- TinyMCE (7)
- webservice (1)
- Wordpress (18)
- คอมฯ ทั่วไป (6)
-
Recent Posts
- akismet ปลักอินกรองแสปมของเวิร์ดเพรส
- WP-CMS Post Control ปลักอินสำหรับซ่อนสิ่งที่ไม่ต้องการในเวิร์ดเพรส
- wordpress flickr manager ปลักอินสำหรับอัปโหลดภาพเก็บที่ flickr
- picpick โปรแกรมที่เว็บโปรแกรมเมอร์ต้องมีไว้ติดเครื่อง
- ขอความเห็น
- todoist โปรแกรมจดรายการสิ่งที่ต้องทำสุดเจ๋ง
- wordpress google xml sitemap หนึ่งในปลักอินที่ท่านต้องติดตั้ง
- แนะนำเว็บให้ความรู้การเขียนโปรแกรมโคตะระเด็ด
- โปรแกรมจดรายการสิ่งที่จะต้องทำ
- แจกภาพปุ่มเอาไปตกแต่งเว็บ
- วิธีสร้างเว็บให้ติดอันดับหนึ่ง
- wordpress ปิงผู้ปิดทองหลังพระ
- วิธีเปิด notepad อย่างรวดเร็ว
- วิธีดึงข้อมูลออกจากฐานข้อมูลของเวิร์ดเพรส แบบสุ่ม
- หารายละเอียดโดเมน
Tags
AppServ Array Back to the basic bug calendar CAPTCHA chart CSS Dreamveawer eclipse error firebug Firefox firefox plugin FPDF General google helios HTML icons Javascript jQuery jquery plugin jquery slide jQuery tutorial jQuery UI Mac MySQL Other pdt PHP phpmailer programming slide slide show SMF smf themes smf themes download smf themes free smf themes thai SQL sql function tooltip Wordpress wordpress plugin
ผมทำตามทั้ง 3 วิธีแล้วยังแก้ไม่ได้เลย มันขึ้นอย่างนี้อ่ะครับ
PNG IHDR<z4Uง PLTE๔๊€ศ–€ ฯ\
อันนี้มันไม่เกี่่ยวกับปัญหา redirect แล้วล่ะครับ
จากที่เขียนมาน่าจะเกิดจากการใช้ charset utf8 ค่ะ
ขอบคุณคับ
ขอบคุณมากครับ ผมใช้ Javascript แทน ครับ เรียบร้อย หายห่วง
ให้เอา Tag <html> ออก ครับ
ขอบคุณครับ ผมใช้ Javascript เช่นกัน ใช้ได้ครับ :)
อีกกรณีของ utf-8 คือ เราต้องสั่ง save code แบบ utf-8 without BOM (BOM:Byte-Order Mark ) ไม่งั้นไล่โค้ดจนตายก็หาไม่เจอ
ขอบคุณค่ะ กำลังหาวิธีแก้พอดี
2.ใส่คำสั่ง ob_start() ใว้บนบรรทัดแรกสุดๆ ของไฟล์ (ไม่แนะนำ)
เพราะอะไรถึงไม่แนะนำครับ มันมีข้อเสียอย่างไรครับ รบกวนอธิบายหน่อยได้ไหมครับ
http://www.select2web.com/php/ob_start.html