11/15/16

CARA MENGATASI SESSION YANG HILANG SAAT BUKA DOMAIN LAIN DALAM SATU SERVER DENGAN MENGGUNAKAN FRAMEWORK PHP LARAVEL ATAU CODEIGNITER

Mungkin ada sahabat atau teman-teman mengalami masalah yang sama dengan masalah saya saat menggunakan session pada Framework PHP Laravel.

Kasus yang saya alami adalah seperti ini,

Di localhost saya ada 2 system dengan menggunakan framework php laravel. Kita sebut saja nama system nya (localhost/laravel1 dan localhost/laravel2), kedua system tersebut menggunakan session untuk login kedalam system. Awalnya saya coba login di system “locahost/laravel1” dan tidak ada masalah, system berjalan normal. Selanjutnya saya coba buka system “locahost /laravel2” di tab yang berbeda, nah saat membuka “locahost/laravel2” ini session pada “localhost/laravel1” jadi hilang dan saya harus login kembali. Tapi kalau nanti saya buka “localhost/laravel2” maka session di “localhost/laravel1” jadi hilang kembali dan mengharuskan untuk login. Intinya, kedua system yang sama-sama menggunakan framework laravel ini tidak bisa dibuka dalam waktu yang bersamaan, kalau dibuka bersamaan maka salah satu atau keduanya akan hilang sessionnya.

Nah bagaimana cara mengatasi hal ini agar tidak terjadi ?

saya otak atik yang memakan waktu lumayan lama, karena searching di mbah google juga tidak bisa menemukan solusi. Alhamdulillah problem is solved dengan cara yang ternyata sederhana, langkahnya adalah sebagai berikut :
-          Pertama silahkan buka file session.php yang ada di config/session.php (laravel 4.2) atau di App/config/session.php (laravel5.2)
-          Kemudian pada

return array(
  'cookie' => 'laravel_session',
 )

Rubah menjadi

return array(
  'cookie' => 'nama_session’,
 )

        
Antara system yang satu dengan system yang lainnya nama cookie tidak boleh sama, contohnya pada “localhost/laravel1” dirubah menjadi
return array(
  'cookie' => 'laravel1_session’,
 )

        

Dan pada “localhost/laravel2” dirubah menjadi

return array(
  'cookie' => 'laravel2_session’,
 )

        

Selanjutnya simpan file config/session.php tersebut, dan problem is solved.

Jadi kesimpulannya, nama cookie yang ada di file config/session.php tidak boleh sama Antara system yang satu dengan system yang lainnya.

Update :
Bagi anda yang mengalami masalah yang sama dan menggunakan Framework Codeigniter, caranya tidak terlalu berbeda jauh. Pengaturan nama session ada di file Application/config/config.php

$config['sess_cookie_name']  = 'ci_session';

Silahkan rubah nama session (ci_session) sesuai keinginan anda memberikan nama pada session tersebut. jangan lupa save sebelum file ditutup.

demikian tips dari saya semoga dapat membantu mengatasi masalah teman-teman.

1 comment:

  1. Mantap sekali gak kepikiran sampe kesini, Makasih mas bro sangat bermanfaat !!

    ReplyDelete