Session PHP

Session digunakan untuk menyimpan data visitor secara sementara pada server.

Sama seperti cookie, session bisa digunakan untuk menyimpan data visitor dan mengenali visitor. Namun cookie memiliki kerentanan dimanfaatkan oleh hacker karena sangat mudah untuk memodifikasi cookie yang tersimpan di dalam komputer visitor.

Selain masalah hacker, setiap kali visitor membuka sebuah halaman web maka setiap kali itu pula visitor mengirimkan cookie yang tersimpan di dalam browser visitor ke server halaman web. File cookie yang dikirimkan ke server ini bisa menambah berat kerja server sehingga mengurangi performa website.

Misalkan saja sebuah website menyimpan lima buah cookie ke dalam browser visitor (satu buah cookie memiliki ukuran sekitar 4Kb). Pada kunjungan visitor berikutnya maka browser visitor harus mengirimkan lima buah cookie secara bersamaan ke server (20 Kb).

Kedua masalah di atas bisa diselesaikan menggunakan session karena session menyimpan data visitor bukan pada browser visitor melainkan di dalam server.

Berikut ini adalah urutan bagaimana session bisa mengenali visitor:

  1. Visitor membuka sebuah halaman web.
  2. Server memberikan angka khusus ke komputer visitor (ID khusus).
  3. File sementara tercipta secara otomatis di dalam server berdasarkan ID khusus yang diberikan ke komputer visitor.
  4. Visitor membuka halaman web lain atau halaman web yang sama.
  5. Server mengenali ID khusus yang dimiliki oleh visitor.

File sementara yang tercipta di server berguna untuk menyimpan data session dan bisa diatur melalui session.save_path yang ada di dalam file [php.ini].

Memulai session

Session bekerja dalam jangka waktu tertentu dan sebuah session dimulai dengan menjalankan session_start() function.

Catatan:

  • Code session_start() function harus ditulis sebelum tag <html>.

Code PHP 1:

<?php
session_start();
?>
<html>
<body>
</body>
</html>

Saat session_start() function dijalankan maka session_start() function akan memeriksa terlebih dahulu apakah visitor sudah memiliki sebuah ID khusus yang merupakan pertanda bahwa sebuah session sedang dijalankan.

Jika visitor tidak memiliki ID khusus maka visitor akan diberi sebuah ID khusus lalu sebuah session dijalankan. Sebaliknya jika visitor sudah memiliki ID khusus yang artinya sebuah session sedang dijalankan maka server akan menggunakan session yang sedang berjalan tersebut.

Menyimpan dan mengakses data session

Saat session dimulai maka saat itu pula terbentuk $_SESSION. Code $_SESSION adalah sebuah superglobal yang memiliki bentuk associative array.

Untuk menyimpan data dalam sebuah session kita bisa menggunakan $_SESSION. Data yang tersimpan di dalam sebuah session hanya bisa digunakan saat session tersebut berjalan. Setelah session selesai maka data yang ada dalam session tersebut akan terhapus secara otomatis.

Berikut ini kita akan memulai sebuah session dan menyimpan dua buah data:

Code PHP 2:

<?php
// Memulai session
session_start();

// Menyimpan data
$_SESSION["makanan"] = "Nasi goreng";
$_SESSION["minuman"] = "Es teh";
?>

Untuk mengakses dan menggunakan data yang tersimpan di dalam sebuah session dari halaman web lain yang masih satu domain kita harus gunakan kembali session_start() function.

Code PHP 3:

<?php
// Memulai session
session_start();

// Mengakses data session
echo "Makanan kesukaan: " . $_SESSION["makanan"] . "<br />";
echo "Minuman kesukaan: " . $_SESSION["minuman"];
?>

Hasil code PHP 3:

Makanan kesukaan: Nasi goreng
Minuman kesukaan: Es teh

Menghapus session

Untuk menghapus sebuah data di dalam session kita bisa mengunakan unset() function.

Code PHP 4:

<?php
// Memulai session
session_start();

// Menghapus satu data session
if(isset($_SESSION["makanan"])){
    unset($_SESSION["makanan"]);
}
?>

Untuk menghapus semua data di dalam session kita bisa menggunakan session_unset() function.

Code PHP 5:

<?php
// Memulai session
session_start();

// Menghapus semua data session
session_unset();
?>

Untuk menghapus sebuah session bersama dengan semua data di dalamnya kita bisa menggunakan session_destroy() function. Function ini tidak membutuhkan parameter apapun.

Sebelum menghapus sebuah session pastikan terlebih dahulu bahwa kamu sedang berada di dalam sebuah session atau bisa juga dengan memulai session baru.

Code PHP 6:

<?php
// Memulai session
session_start();

// Menghapus session
session_destroy();
?>

Setiap PHP session memiliki durasi waktu tertentu. Kamu bisa mengubah durasi waktu ini dengan mengubah nilai variable session.gc_maxlifetime yang ada di dalam file [php.ini].

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>