RSS Feed

Session Values Null But Session Keys Remain

Posted on

Ini berjam-jam saya habisin waktu di warkop buat menghandle masalah Session Values jadi NULL padahal Session Keys-nya masih ada di situ. Bingung kenapa….? Udah di dump dari atas page, bawah dan di tempat-tempat yang mencurigakan, ga ada masalah, Session Values masih bener. Tapi pas pindah halaman, jadi NULL lah mereka tapi Session Keys nya masih nangkring di situ. Bingung bukan alang kepalang. Mana script saya panjang, pake object dan RESTful API, ga nemu-nemu. Kalau buntu gini, saya putuskan untuk pulang dan tidur… Zzz…

Benar saja, tadi pagi, terlintas di otak saya, bahwa saya set Session menggunakan object seperti ini:

$_SESSION[‘data’]->username = $theuser->username;

Note that, bukan masalah object di Session tapi masalahnya di object $theuser yang value usernamenya dikasih ke si $_SESSION[‘data’]->username.

Berdasarkan pengalaman pas bikin formula YIELD obligasi di PHP, kalau dengan cara ini, ketika kita mengubah value $theuser->username, maka value $_SESSION[‘data’]->username juga akan ikut berubah. Damn it eh?! Pas ganti halaman kan object $theuser meninggal, artinya values-nya jadi NULL. Si session ngambil values dari yang udah jadi NULL tadi, ya NULL juga lah Session Values-nya.

Solusinya!

Jangan pake = tapi pake = clone, seperti ini:

$_SESSION[‘data’] = clone $theuser;

Sehingga, tidak ada hubungan lagi antara object $theuser dan $_SESSION[‘data’].

Demikian sharing dari otak kanan saya yang semalem baru diistirahatkan jam 4. Salam Session!

About mangkum

Models maker and fans: building view-controller-models, financial models, statistical models and a fan of super models.

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

%d bloggers like this: