ปัญหาคือ ทุกครั้งที่ผม refresh หน้าจอของ IE(เดิม ไม่ได้เปิดใหม่หรือเปลี่ยนแปลงแต่อย่างใด)
หมายเลข session id ที่ได้จะไม่ซำของเดิมเลย
ผมเปิด session_start() แล้ว และก็หากเอา session_start() ออก ก็ได้ยังได้หมายเลข id
ด้วยละครับผมละงงจริงๆ ใน php.ini ผมก็ไม่ได้ ตั้งค่าให้ start session auto เลยนะครับ
---------------
webserver: sun one 6.1
PHP: 4.3.7
OS: win2003 ent
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
สาเหตุเป็นไปได้หลายกรณีครับ ที่พอนึกออกคือ IE ปิดคุกกี้ หรือไม่ก็คุกกี้เต็ม เพราะ session ก็ต้องใช้คุกกี้เหมือนกัน วิธีแก้คือ ส่ง session id ผ่าน url ($_GET) แล้วกำหนด session id เองโดยอ่านจาก $_GET
ผมลองล้างค่าใน ie ออกทั้งหมด แล้วครับ
ผมลองโดยสร้างเครื่องที่เป็นเครื่องทดสอบ แล้วเอามาเชื่อมต่อกับอีกเครื่องหนึ่ง
โดยใช้สายcross กันครับ เพื่อทดสอบว่าหากใช้ ie จากเครื่องอื่นจะเป็นเหมือน
กันไหมสรุปว่าเป็นเหมือนเดิมครับ
มี reverse proxy รึเปล่า หรือว่าใช้ proxy หลายตัว
อันนี้ผมไม่ได้ใช้ proxy เลยครับ เอาเครื่อง 2 เครื่องมาต่อกันแล้วทดสอบ
ทั้งใน ie ของตัวมันเอง และ ie ของเครื่องที่เชื่อมกันก็เป็นเหมือนเดิมครับ
ลองเช็ค header ว่ามันส่งรับอะไรกันแน่
ดังนี้ครับ
code present
code header
code file
เซิร์ฟเวอร์เป็นวินโดส์เหรอครับ
ปัญหา PHP Warning: session_start(): Cannot send session cookie - headers already sent
in C:\wwwroot\test_session.php on line 2
ลองดูครับว่ามี print อะไรก่อนเรียก session_start หรือเปล่าครับ
หรือก่อนเปิด tag php มีช่องว่างหรือเปล่าครับ แต่จะมีผลต่อ session id ไม่แน่ใจนะครับ
ใช่ๆ ไม่งั้นก็ใส่ ob_start() ตั้งแต่เริ่ม
ขอบคุณ คุณ sugree และ คุณ kaze มากครับ
มันเป็นโปรแกรมของ vendor แล้วผมต้องมาดูแลต่อนะครับ
เฮ้ิอดูยากเป็นบ้าเลย ตอนนี้ก็ยังต้องไล่อยู่นะครับ
แต่ที่ตัว production ไม่มีปัญหาเลยนะครับ
พอผมมาลองลงกับเครื่อง test ก็เจอปัญหาแบบนี้ละครับ
น่าจะเป็นที่ php.ini
ถ้าจำไม่ผิดน่าจะเป็น output_handler นะครับ
เดี่ยวไปดูก่อนครับ ขอบคุณครับ
Expires: Thu, 19 Nov 1981 08:52:00 GMT
ตรงนี้หมายถึง HTML หรือ Cookie ครับ
html