-->

MEMAHAMI SESSION PADA PHP

Assalamualaikum
Salam Software
Kali ini saya akan berbagi materi tentang SESSION. Apa itu SESSION dan Bagaimana cara penggunaannya, oke cekidot......

PENGERTIAN SESSION


Dalam PHP, session merupakan data yang disimpan dalam suatu server yang dapat digunakan secara global di server tersebut, dimana data tersebut spesifik merujuk ke user/client tertentu, contoh penggunaan session adalah ketika user telah login di halaman tertentu, maka ketika membuka halaman lain, php akan mengingat bahwa user tersebut telah login, contoh ketika kita telah login pada Google, maka setiap kali kita membuka layanan Google seperti GMail, Google Drive, dll di tab berbeda, kita akan selalu dalam keadaan login, kecuali kita buka dengan browser yang berbeda.

Cara Kerja Session Pada PHP


Ketika kita memulai session dengan menjalankan perintah session_start() maka PHP akan menjalankan perintah baik pada server maupun pada client/user. Session menyimpan file tersebut secara default disimpan didalam direktori temporary dimana letak direktory ini tergantung dari masing-masing sistem opersi yang digunakan. untuk mengetahui dimana php menyimpan file session, dapat menggunakan perintah: session_save_path() Misal kita buat file session.php dan simpan ke dalam htdocs/tutorial, selanjutnya tuliskan kode berikut:

<?php echo session_save_path(); ?>

Isi File Session Pada PHP

Isi file session pada PHP berupa array yang di serialize nilainya akan berubah ubah sesuai dengan manipulasi data yang kita lakukan, misal file session.php kita ubah menjadi:

<?php
echo session_save_path();
session_start();
$_SESSION['user'] = 'kyrar';
$_SESSION['auth'] = 1;

ketika kita jalankan PHP akan menyimpan data session dengan key dan value sesuai dengan yang kita tentukan, jika kita buka file session tadi menggunakan notepad, maka akan berisi user|s:6:"kyrar";auth|b:1;, format: nama key diikuti tanda | kemudian data yang di serialize (tipe data : panjang data(jika ada) : nilai data) dengan tanda pemisah antara data satu dengan yang lain menggunakan  titik koma. contoh diatas berarti bahwa s merupakan tipe data string, 6 panjang data, sedangkan b berarti tipe data boelan.

Session selesai


Ketika browser ditutup atau kita menjalankan perintah session_destroy() maka session berakhir, jika kita menggunakan session_destroy() maka file session yang ada pada server akan langsung terhapus, namun jika browser ditutup, file tersebut tidak langsung dihapus, server akan menghapusnya pada periode tertentu, biasanya kurang lebih 30 menit. Ketika browser ditutup, cookie session pada browser akan langsung terhapus, sehingga session tersebut tidak dapat digunakan lagi kecuali jika kita mengetahui ID Session nya, maka data session tersebut dapat digunakan kembali baik melalui url maupun cookie.

Menambahkan Data Session Pada PHP


Semua data session disimpan dalam bentuk array superglobal dengan nama $_SESSION, sehingga seperti array pada umumnya setiap variabel session disimpan dalam hubungan key dan value, untuk menambahkan data kedalamnya sama dengan ketika kita menambahkan data di array biasa, namun bedanya variabel $_SESSION akan tetap dapat kita gunakan di file php manapun (dalam satu server) hingga kita mengakhirinya dengan perintah session_destroy()

Contoh untuk menambahkan data session:
<?php
session_start();
$_SESSION['user'] = 'kyrar';
$_SESSION['role'] = 'admin';
$_SESSION['login_time'] = date('Y-m-d');
print_r($_SESSION);

/*
Output
Array
(
    [user] => kyrar
    [role] => admin
    [login_time] => 2020-09-10
)
*/


Membaca Data Session Pada PHP


Setelah kita menyimpan data pada session, data tersebut langsung dapat kita gunakan, untuk memanggil  data session pada PHP, seperti kita memanggil data pada array pada umumnya, yaitu dengan key nya, contoh:

<?php
    $_SESSION['user'] = 'kyrar';
    echo $_SESSION['user']; // kyrar
?>

Session yang telah kita isi datanya dapat langsung kita gunakan sehingga lebih banyak keuntungannya dibanding menggunakan $_COOKIE.

Menghapus Data Session Pada PHP


Untuk menghapus data session pada php, sama seperti ketika kita menghapus variabel, yaitu menggunakan perintah unset() contoh berikut menyambung contoh sebelumnya:

<?php
unset($_SESSION['user']);
print_r($_SESSION);

/*
Output
Array
(
    [role] => admin
    [login_time] => 2020-09-10
)
*/

disamping itu kit juga dapat menggunakan perintah session_unset() untuk menghapus semua data pada $_SESSION, contoh:

<?php
session_start();
$_SESSION['user'] = 'kyrar';
$_SESSION['role'] = 'Admin';
session_unset();
print_r($_SESSION);

/*
Output
Array ()
*/


perlu diperhatikan bahwa jika menggunakan perintah unset() untuk menghapus data session, pilihlah data secara spesifik, jangan menghapus $_SESSION itu sendiri (unset($_SESSION)), karena akan menghapus semua isi data session, dan menghapus variabel $_SESSION itu sendiri, sehingga jika kita panggil akan memunculkan pesan error bahwa variabel $_SESSION undefined. contoh:


<?php
session_start();
$_SESSION['user'] = 'kyrar';
$_SESSION['role'] = 'admin';
$_SESSION['login_time'] = date('Y-m-d');
unset($_SESSION);
print_r($_SESSION);

// Notice: Undefined variable: _SESSION in c:\xampp\htdocs\session\session.php on line 7

Mengakhiri Session Pada PHP


Untuk mengakhiri session pada PHP, kita gunakan perintah session_destroy(), dengan perintah ini maka file session akan dihapus dari server. contohnya ketika user logout, maka session akan berakhir dan user diminta untuk login kembali.

Sekian penjelasan tentang SESSION PHP semoga bermanfaat.
Assalamualaikum
Salam Software



Komentar