PHP Session Tidak Berfungsi pada Halaman Tertentu

Pengalaman ini saya dapat waktu mengerjakan sebuah proyek web PHP CI (CodeIgniter). Saya menggunakan session untuk validasi rating dan menyimpan history halaman yang telah dikunjungi oleh visitor. Namun, ajaibnya session ini hanya aktif pada halaman-halaman tertentu. Saya sudah mengecek ulang semua code yang berhubungan dengan session dan tidak menemukan kesalahan, saya mulai menduga-duga apa ada masalah kompatibilitas dengan server, versi apache atau versi PHP, versi CI, atau mungkin ada bug dalam library session dari CI. Saya pun mencoba mengubah semua CI session dengan native session, hasilnya sama saja.

Setelah sekian lama mencari-cari dan tidak menemukan solusi, secara tidak sengaja saya menemukan permasalahannya ketika saya mencoba membuka halaman yang menggunakan session tersebut dengan langsung mengetik url nya (selama ini saya terlebih dahulu membuka homepage baru kemudian ke halaman yang menggunakan session). Ketika itu ternyata sessionnya berfungsi normal. Setelah dibanding-bandingkan dengan halaman yang tidak berfungsi, bedanya hanya pake url, dimana yang berfungsi menggunakan www. nama-domain.com sedangkan yang tidak berfungsi langsung nama-domain.com.

Ternyata url yang ada pada web yang saya buat tidak seragam, ada yang menggunakan www ada yang tidak. Saat itulah session menjadi tidak berfungsi, karena session yang disimpan pada www. nama-domain.com berbeda dengan session pada nama-domain.com. Setelah masalah ditemukan, maka saya ubah seluruh url menggunakan www, dan session berfungsi dengan normal pada semua halaman.

2 thoughts on “PHP Session Tidak Berfungsi pada Halaman Tertentu

  1. Saya mempunyai masalah yang sama, tp yang saya tanyakan cara menyeragamkan url bagaimana? Apa di redirect?

    Dan bagaimana saya bisa mengetahui jika url yang saya gunakan tdak seragam?

    Terimakasih

  2. Halo Muchamad,

    Iya, cara supaya domainnya menjadi seragam bisa dengan memanfaatkan .htaccess

    Contoh ini akan membuat semua akses ke domain.ext menggunakan www (www.domain.ext)

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^domain.ext [NC]
    RewriteRule ^(.*)$ http://www.domain.ext/$1 [L,R=301,NC]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s