Error จากการเรียกฟังก์ชั่น setcookie ในไฟล์ index1.php ของผมมีโค้ดดังนี้ครับ
คำสั่ง setcookie('xxx','yyy'), session['xxx']='yyy', header()
ต้องกระทำก่อนการ echo ใดๆบน page เพราะกลไกของ php จะส่ง header ก่อนที่จะมีการส่งข้อความที่เกิดจากคำสั่ง echo
แต่ก็เคยเจอปัญหานี้เหมือนกันหากเราใช้ encode script เป็น UTF-8 with BOM เพราะไฟล์แบบนี้มันจะเก็บอักขระไว้ที่หัวไฟล์และเมื่อสั่ง run script มันจะส่งอักขระที่หัวไฟล์นี้มาแสดงก่อน หากมีการใช้ คำสั่ง setcookie('xxx','yyy'), session['xxx']='yyy', header() ต่อมาและถึงแม้ว่าจะเป็นคำสั่งก่อน echo ก็ตามมันก็จะ error ตามแบบที่ว่ามา
ลองเช็คดูนะครับว่า
1. setcookie หลัง echo หรือเปล่า
2. ใช้การ encode script เป็น UTF-8 BOM หรือเปล่า
Hope this help
Date :
2010-06-06 11:21:57
By :
pnbps
คิดว่าน่าจะเป็นกรณีหลังครับเพราะโค้ดในไฟล์ผมตัดส่วนอื่นออกหมดจนเหลือแค่เพียงฟังก์ชั่น Setcookie บรรทัดเดียวอย่างที่เห็นนั่นแหละครับ
แล้วเราจะเช็คยังไงครับว่า encode script เป็น UTF-8 BOM หรือเปล่า
แล้วถ้าใช่จะเปลี่ยนมันยังไงครับ
Date :
2010-06-06 11:45:59
By :
sirisak2029
อืมม ทำไงเหรอขึ้นอยู่กับว่าเราใช้ text editor ตัวไหน
ผมใช้ notepad++ มันจะให้เราเลือกการ encode ไฟล์ตรง menu encoding ได้เลย
หากเป็น EditPlus, Notepad ต้องเลือกตอน save ไฟล์ครับโดยการเลือกที่ Encoding
หากเป็น editor อื่นนอกจากนี้ ไม่แน่ใจเหมือนกันครับเพราะผมก็ไม่คุ้นเคย
Date :
2010-06-06 12:07:31
By :
pnbps
แล้วถ้าใช้ netbean เป็นตัว editor หล่ะค่ะ จะเปลี่ยนยังไง พอดีเจอ error แบบนี้เหมือนกันเลยค่ะ
Date :
2011-01-08 12:48:22
By :
toto
Date :
2011-04-04 18:05:27
By :
อีเมล์
Load balance : Server 00