Pada artikel belajar PHP kali ini, kita akan membahas tentang session dalam PHP.

Apa itu Session?

Session adalah data yang disimpan di server yang dapat dipanggil secara global di dalam server tersebut. Berbeda dengan cookies yang disimpan di browser, session disimpan di dalam web server.

Session memungkinkan sebuah website mengetahui dan mengingat kita sedang mengakses website tersebut meskipun kita sudah menutup halaman website dari browser.

Misalnya saja kita sudah login email di Gmail, namun saat membuka Gmail lagi di tab berbeda di dalam browser, maka kamu masih terbaca sedang login. Itu karena login session kamu sudah ada di server. Tapi berbeda lagi kasusnya jika kamu membukanya dengan menggunakan browser yang berbeda. Itu tidak terbaca karena client id dari browser kalian terbaca berbeda.

Cara Kerja Session

Di server, jika ada perintah untuk memulai session, maka server akan membuat sebuah file yang biasa disebut dengan Session ID (SID). Format SID biasanya adalah sess_ + ID session yang didapatkan dari client.

ID session berupa 26 karakter hexadesimal, contohnya 1g7vff79tg4869tp8u53gl6l02. Jadi file session id yang tersimpan contohnya: sess_1g7vff79tg4869tp8u53gl6l02

Jika tidak ada session ID sebelumnya, PHP server akan menggenerate secara random idnya , dimana tidak mungkin bisa untuk ditebak.

Dalam PHP, session dimulai dengan menuliskan kode session_start(); di paling awal kodingan kamu. Kode ini akan menggenerate SID untuk setiap user yang mengakses website kamu.

Jika session id sudah ada, maka php akan memakai session id sebelumnya, jika tidak maka akan di generate session id yang baru.

Lalu dimana file session ini disimpan?

File session ini disimpan di sebuah directory temporary di server. Untuk mengecek dimana file session ini berada, kamu bisa mengeceknya dengan kode berikut:

<?php echo session_save_path(); ?>

Hasil dari echo di atas mungkin berbeda-beda dimasing-masing server ya. Misalnya untuk local server saya, temp session filenya berada di /Applications/MAMP/tmp/php

Belajar Session PHP

Jika kita sudah mengetahui konsep dari session, saatnya kita belajar secara langsung tentang session di PHP.

Pertama kita buat sebuah file dengan nama index.php

<?php

session_start();

File diatas akan meng-inisialisasi session saat pertama kali dibuka.

1. Menambah Data Ke Session

Untuk menambah session, caranya sangat mudah.

Kamu tinggal membuat sebuah variable session dan mengisi nilainya.

<?php

session_start();

$_SESSION['nama'] = 'Agus Yusida'
$_SESSION['pekerjaan'] = 'Programmer'

Sintak untuk menambah session adalah dengan $_SESSION['nama_key_session'] kemudian tinggal mengisi nilainya.

2. Membaca Data Session

Untuk membaca session juga cukup mudah, kamu tinggal echo data session yang sudah ditambahkan tadi.

<?php

session_start();

$_SESSION['nama'] = 'Agus Yusida';
$_SESSION['pekerjaan'] = 'Programmer';

echo 'Nama: '.$_SESSION['nama'];
echo '<br>';
echo 'Pekerjaan: '.$_SESSION['pekerjaan'];

3. Mengupdate Data Session

Untuk mengupdate data session, kamu tinggal menge-set nilai baru kedalam session yang sudah ada.

Contohnya:

<?php

session_start();

$_SESSION['nama'] = 'Agus Yusida';
$_SESSION['pekerjaan'] = 'Programmer';

echo 'Nama: '.$_SESSION['nama'];
echo '<br>';
echo 'Pekerjaan: '.$_SESSION['pekerjaan'];

$_SESSION['nama'] = 'Agus Yusida';
$_SESSION['pekerjaan'] = 'Petani';

echo '<br>';
echo '<br>';
echo 'Nama: '.$_SESSION['nama'];
echo '<br>';
echo 'Pekerjaan: '.$_SESSION['pekerjaan'];

4. Menghapus Data Session

Untuk menghapus session ada 2 cara. Karena session ini sebenarnya adalah array, kita bisa menggunakan perintah unset().

<?php

session_start();

$_SESSION['nama'] = 'Agus Yusida';
$_SESSION['pekerjaan'] = 'Programmer';

unset($_SESSION['nama']);

print_r($_SESSION);

/*
Output
Array
(
    [pekerjaan] => 'Programmer'
)
*/

Yang kedua, cara untuk menghapus session adalah dengan session_unset();. Tapi hati-hati karena ini akan menghapus semua isi dari $_SESSION.

Contohnya:

<?php

session_start();

$_SESSION['nama'] = 'Agus Yusida';
$_SESSION['pekerjaan'] = 'Programmer';

session_unset();

print_r($_SESSION);

/*
Output
Array
()
*/

session_unset(); akan menghapus semua data session yang sudah kita set sebelumnya.

Tapi perlu diketahui bahwa sebenarnya file session yang ada di server itu masih ada.

Mengakhiri Session

Jika kita ingin mengakhiri session, maka kita menggunakan perintah session_destroy().

Kode tersebut tidak hanya menghapus isi dari session juga akan menghapus file session yang ada di temporary folder.

Kode ini biasanya kita gunakan jika ingin benar-benar menghapus semua session dari user misalnya saat proses logout.

Kesimpulan

Session dalam PHP memiliki fungsi yang sangat penting karena dengan session , kita bisa berbagi informasi global di server tanpa harus mengirim data secara terus menerus dari client. Session ini biasanya sering dipakai dalam proses login dalam website. Jika user sudah berhasil login, maka session login tersebut akan bisa dipakai terus di server sampai batas waktu tertentu.

Demikianlah artikel tentang belajar session di PHP. Semoga artikel ini bermanfaat.