Masalah session_start(): Cannot send session cache limiter headers already sent umumya banyak terjadi pada halaman web atau aplikasi berbasis web yang menerapkan teknik load banyak halaman namun dimuat dalam satu halaman yang sama ibarat halaman index.php. Masalah ini niscaya akan sering ditemukan pada halaman login yang mengeset sebuah nilai session atau session_start(); yang memang diperlukan untuk menghasilkan variabel atau menyimpan variabel session yang nantinya dipakai untuk validasi pada halaman selanjutnya.
Saat kita akan mencoba mengset sebuah login proses, umumnya kita akan mengeset sebuah nilai session. Nilai session tersebut akan dibandingkan pada halaman lain yang menambahkan session, kalau sessionnya cocok user boleh melanjutkan kalau tidak user akan dikembalikan ke halaman login
Berdasarkan pengalaman, khususnya saat kita memakai teknik memisah misah halaman namun di load di file index, biasanya duduk kasus ini akan terjadi alasannya ialah kesalahan kita dalam memakai session itu sendiri.
Misalnya pada gambar diatas, merupakan nilai login proses, saat berhasil login, nilainya akan diarahkan ke file pada gambar ibarat berikut :
Pada gambar diatas, kalau kita load session_start(); maka otomatis akan memunculkan pesan error : session_start(): Cannot send session cache limiter headers already sent. Tapi seandainya kalau tidak di set session_start(); maka kita tidak akan dapat login, meskipun username dan password yang dipakai benar. Kalau tidak percaya, silahkan coba sendiri.
File diatas diload pada satu halaman index (meload file secara terpisah). Tujuan penambahan session pada file tersebut ialah untuk mencegah susukan bypass atau susukan ke file secara langsung. Makara solusinya session_start(); tidak perlu ditambahkan pada setiap file, jadi kita hanya cukup melaksanakan pengecekan saja yaitu dengan if(!isset($ SESSION[‘admin’])){ tapi yang jadi masalah, kalau di set ibarat itu maka yang terjadi ialah kita tidak akan dapat login.
Solusinya ialah file session ditaruh di load file index utama. Contohnya ibarat berikut
Jadi pada file sesion utama, kita set session_start(). Selanjutnya kalau kita tidak menginginkan bypass atau susukan halaman secara eksklusif pada setiap file, maka nanti kita cukup mengeceknya saja dengan if(!isset($ SESSION[‘admin’])){ tanpa ada session_start(); sebelumnya