Menangani Session PHP diantara subdomain

Ada sebuah proyek aplikasi berbasis PHP, yang Saya ingin mengkostumisasi proyek manajemen tersebut sebelum memulai, dan berfikiran untuk membuat beberapa subdomain yang berfungsi untuk membagi bandwidth pemakaian ketika pengguna me-load 1 halaman website utama.

Pernah mengunjungi facebook.com? Siapa yang belum pernah, sebuah situs jejaring sosial terkenal seluruh dunia yang indonesia termasuk salah satu pengguna facebook dengan peringkat ke 2 dunia. Di facebook, terdapat 1 domain induk yakni facebook.com dan terdapat beberapa subdomain dibelakangnya yang mengikuti ketika membuka domain inti facebook.com, seperti static.ak.fbcdn.net, b.static.ak.fbcdn.net, external.ak.fbcdn.net, photos-d.ak.fbcdn.net, pixel.facebook.com dan banyak subdomain lainnya, cukup dengan firebug, salah satu plug-in firefox untuk para web developer yang salah satu featurenya dapat men-trace dari subdomain mana saja website yang sedang akses.

Permasalahan seperti contoh facebook diatas, jelas menggunakan session cross-subdomain. Yakni akan menyimpan dan memberikan session jika session dibuat walaupun berada di subdomain lain. Dengan catatan session akan dibuat ketika pengguna facebook sudah berhasil login

Kembali ke project, sinopsis yang akan diterapkan: Saya akan membuat 2 subdomain dari 1 domain induk bernama example.com, yakni; login.example.com dan admin.example.com Ke-2 subdomain tersebut menjadi sub dari domain induk example.com dimana ketika Saya membuat form login di http://example.com/index.php Saya buat sebuah form dengan action ke salah satu subdomain, yakni: login.example.com, jika login berhasil, maka akan mengarah ke subdomain admin.example.com

Halaman Login

Ketika button Login ditekan, form tersebut akan mengantarkan 2 variabel bernama: user dan pass ke file login.php yang berada di subdomain login.example.com, berikut adalah konten file login.php

Halaman Proses Login

Sekarang tinggal membuat halaman jika login sukses, kita akan membuatnya di subdomain admin.example.com dengan nama file index.php

Halaman Sukses (setelah berhasil login)

Dan yang terakhir adalah membuat file logout.php di subdomain admin.example.com

Logout (melepas session yang sebelumnya sudah dibuat)

Yang menjadi permasalahan saat sekarang ini, apakah dengan metode login diatas, admin.example.com sudah dapat menangkap session dari subdomain login.example.com? jawabannya adalah “Tidak”, mengapa? Karena sistem PHP membutuhkan sebuah “jembatan” untuk tetap menghubungkan session yang sudah dibuat dari login.example.com untuk dapat dibaca di semua subdomain. Lalu bagaimana?

Ada 3 solusi yang diberikan:

Tambahkan baris berikut di file konfigurasi php.ini

atau baris berikut di file .htaccess

atau baris berikut di file config.php (file koneksi PHP ke database Anda)

Pilih salah satu metode yang menurut Anda nyaman dengan metode pengkodean Anda, Saya menggunakan

dan berhasil. Jika ada permasalahan saat mencobanya, silahkan hapus cookie yang tersimpan di browser Anda

Tertarik untuk mencoba sesuatu yang baru?
Semoga bermanfaat 🙂

Content Protection by DMCA.com