มาแก้สารพันปัญหา Codeigniter Session กันครับ

ผมปวดหัวจากการใช้งาน session ของ framework ตัวนี้มากๆ ก็เลยหาวิธีได้มาประมาณนี้ครับ

กรณีทำบนเครื่อง developer

  1. เปลี่ยนจาก localhost เป็น domain หลอกๆซะ โดยแก้ที่ C:\windows\system32\drivers\etc\hosts แล้ว codeigniter จะไม่ generate session_id ใหม่ให้ทุกหน้า (แต่ยังคง generate ใหม่ทุก 3 นาที หรือตามเวลาที่ตั้งไว้ใน config )
  2. การทำ Application หลายๆตัวบน Instance เดียวกันมันดีน่ะ แต่ บางที Session อาจเป็นปัญหาที่ทำให้ปวดหัว อยู่่เหมือนกัน 
    1. วิธีแก้ คือ แก้ไข config ไฟล์ทุก application ให้เหมือนกัน หากใช้ DB เก็บ Session ก็ต้องเหมือนกันทั้งหมด (กรณี share session)
    2. แก้ไข (relative path) ตัวแปร $system_path,$application_folder ไฟล์ index.php ทุก application 
    3. แก้ไข ชนิดข้่อมูล user_agent ตาราง ci_session ให้มีขนาด 255 (varchar)
    4. แก้ไข ชนิดข้อมูล user_data ตาราง ci_session ให้เป็น text

1 ความคิดเห็น:

งงข้อ 2 แก้อะไรยังไงอ่ะคะ

Reply

แสดงความคิดเห็น