A-AA+then

Warning: Cannot modify header information - headers already sent

1,887
เกิดปัญหานี้เพราะผมใช้ Ajax เรียกภาษาไทยครับผมจะลองเปรียบเทียบให้ฟังนะครับ
ไฟล์ผมจะมีหลักๆทั้งหมด 2 ส่วนคือ
   1.ส่วนหน้าหลักที่แสดงผล (index.php และ service.php)
   2.ส่วนของ php ที่ ajax ไปเรียกใช้ (detail.php)

   เกิดปัญหาเพราะผมกำหนด header ของไฟล์ข้อ 2 เป็น
   <?php header("content-type: application/x-javascript; charset=tis-620");?>
   ซึ่งผมก็ไว้บรรทัดบนสุด และตรวจสอบ space และ echo แล้วว่าไม่มี
   และที่สำคัญถ้าผมเอา header ของไฟล์นี้ออก มันจะไม่เป็นภาษาไทยครับ

   และเมื่อผมใช้ ob_start(); ที่ไฟล์ index.php ปรากฎว่าสามารถรันได้ปกติ
   เช่น http://localhost/test/index.php

   แต่!!

   ถ้าผมใช้ ob_start(); ในไฟล์ service.php ซึ่งหน้านี้จะเรียกโดยเมนูที่เป็น list
   ซึ่งมีการพ่วงค่า id ของ service ไปด้วย
   เช่น http://localhost/test/service.php?id=1

   มันจะไม่สามารถรันไฟล์ได้เลยครับ จะเป็นแบบให้เราเลือก
   open , save หรือ cancel

   รบกวนผู้รู้ช่วยด้วยครับ แก้ปัญหานี้มาทั้งวันแล้วครับ เซงมากๆเลย Q(T_T)o
   ขอบคุณล่วงหน้านะครับ หมดปัญญาจริงๆ

3 ความคิดเห็น

<?php header("content-type: application/x-javascript; charset=tis-620");?>

ลองย้ายไปไว้หน้า index.phpซิครับ
1

หุหุ

1.ถ้าเป็นไปได้ แนะนำ UTF-8 แต่จะเปลี่ยนทันรึ ?
2.ลองอ่านในบทความ ดู เท่าที่อธิบายมาผมว่าก็น่าจะทำถูกหมดแล้วแหละ เหลืออีกทีก็ความผิดพลาดเล้กน้อยที่คิดว่าแก้ไขแล้ว เช่น ob_start ไม่ได้อยู่บรรทัดแรกสุดจริงๆ save ไฟล์ ผิดประเภท ใช้ TIS ต้อง save เป็น Ansi
3. อื่นๆ ไม่รู้ เนื่องจากมีข้อมูลเท่านี้
2

ตกลงผมยก set เป็น UTF-8 ทั้งหมดแล้วครับ
ขอบคุณมากครับผม
3
^