Cara Mengatasi session_start(): Cannot send session cache limiter - headers already sent


Cara Mengatasi session_start(): Cannot send session cache limiter - headers already sent


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 seperti halaman index.php. Masalah ini pasti akan sering ditemukan pada halaman login yang mengeset sebuah nilai session atau session_start(); yang memang dibutuhkan untuk menghasilkan variabel atau menyimpan variabel session yang nantinya digunakan 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, jika sessionnya cocok user boleh melanjutkan jika tidak user akan dikembalikan ke halaman login
 
menghasilkan session ketika login benar


Berdasarkan pengalaman, khususnya ketika kita menggunakan teknik memisah – misah halaman namun di load di file index, biasanya masalah ini akan terjadi karena kesalahan kita dalam menggunakan session itu sendiri.

Misalnya pada gambar diatas, merupakan nilai login proses, ketika berhasil login, nilainya akan diarahkan ke file pada gambar seperti berikut :
 
menambahkan session start di halaman berikutnya

Pada gambar diatas, jika kita load session_start(); maka otomatis akan memunculkan pesan error : session_start(): Cannot send session cache limiter - headers already sent. Tapi seandainya jika tidak di set session_start(); maka kita tidak akan bisa login, meskipun username dan password yang digunakan benar. Kalau tidak percaya, silahkan coba sendiri.

File diatas diload pada satu halaman index (meload file secara terpisah). Tujuan penambahan session pada file tersebut adalah untuk mencegah akses bypass atau akses ke file secara langsung. Jadi solusinya session_start(); tidak perlu ditambahkan pada setiap file, jadi kita hanya cukup melakukan pengecekan saja yaitu dengan if(!isset($ SESSION[‘admin’])){ tapi yang jadi masalah, kalau di set seperti itu maka yang terjadi adalah kita tidak akan bisa login.

Solusinya adalah file session ditaruh di load file index utama. Contohnya seperti berikut
 
meload session di file index

Jadi pada file sesion utama, kita set session_start(). Selanjutnya jika kita tidak menginginkan bypass atau akses halaman secara langsung pada setiap file, maka nanti kita cukup mengeceknya saja dengan if(!isset($ SESSION[‘admin’])){ tanpa ada session_start(); sebelumnya

Related Posts :

0 Response to "Cara Mengatasi session_start(): Cannot send session cache limiter - headers already sent"

Post a Comment

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...