Penggunaan fungsi _SESION pada PHP

Seringkali dalam program web, diperlukan data yang bertahan antar halaman web, seperti data login atau data keranjang belanjaan. Untuk data seperti ini, pada PHP dapat menggunakan session atau cookies.

Menggunakan session sangat sederhana. Seperti menggunakan variabel seperti biasa. Untuk menggunakan session pada PHP, setiap halaman yang menggunakan session harus menyertakan fungsi session_start():

session_start();

Setelah memanggil fungsi session_start(), maka variabel $_SESSION dapat dipergunakan seperti variabel array biasa.

<?php
session_start();
$_SESSION['login'] = 'Fandi';
?>

Setelah diisi pada suatu halaman PHP, variabel $_SESSION dapat dibaca lagi pada halaman lain

<?php
session_start();
if (isset($_SESSION['login'])) {
  echo "sudah login";
} else {
  echo "belum login";
}

Menghapus session pada PHP

Untuk menghapus session pada PHP, menggunakan fungsi unset(). Fungsi unset() adalah fungsi untuk menghapus variabel dari memori.

Untuk menghapus seluruh isi variabel session yang ada, dapat menggunakan fungsi session_destroy();

<?php
session_start();
unset($_SESSION['login']);
unset($_SESSION['keranjang_belanja']);
//atau
session_destroy();
?>

Contoh penanganan login pada PHP

Untuk lebih memahami session, berikut saya sertakan contoh penanganan login sederhana yang melibatkan penggunaan session. Terdiri dari 3 file, yaitu: login.php, home.php, logout.php

1. login.php

<?php
session_start();
if (isset($_SESSION['login'])) header('location:home.php');
if (isset($_POST['username'])) {
	foreach ($_POST as $k=>$v) $$k = $v;
	if ($username != 'fandi') $error = "Username tidak dikenal";
	if (!$error && $password != '12345') $error = "Password salah";
	//Gak ada error --> berhasil login
	if (!$error) {
		$_SESSION['login'] = $username;
		header('location:home.php');
	}
}
?>
<html>
<head><title>Halaman login</title></head>
<body>
<form method="post" action="">
Username:<input type="text" name="username" />
Password:<input type="password" name="password" />
<button type="submit">Masuk!</button>
</form>
</body>
</html>

2. home.php

<?php session_start(); ?><!DOCTYPE html>
<html>
<head><title>Home</title></head>
<body>
<?php if (!isset($_SESSION['login'])) { ?>
<h2>Maaf Anda belum login.</h2>
Harap <a href="login.php">login</a> terlebih dahulu
<br /><br />
Anda akan secara otomatis diarahkan ke halaman login dalam 5 detik
<script>
var anu = function() { window.location = "login.php"; };
setTimeout(anu,5000);
</script>
<?php } else { ?>
<h2>Home</h2>
Selamat datang <?= $_SESSION['login'] ?> ke halaman home.<br />
Mohon maaf di sini belum ada apa-apa.<br />
Mungkin Anda bisa langsung <a href="logout.php">logout</a> saja.<br />
Terima Kasih atas kunjungannya.
<?php } ?>
</body>
</html>

3. logout.php

<?php
session_start();
unset($_SESSION['login']);
?>
<html>
<head><title>Logout</title></head>
<body>
<h2>Anda telah berhasil logout</h2>
Anda akan otomatis kembali ke <a href="login.php">halaman login</a> setelah 8 detik.
<script>
var anu = function() {
	window.location = "login.php";
};
setTimeout(anu,8000);
</script>
</body>
</html>

Demikian contoh aplikasi login sangat sederhana. Terdapat beberapa syntax yang belum dijelaskan pada script di atas, antara lain:

  1. header("location:sekian.php");
  2. <script></script>
  3. window.location = 'tujuan.php';
  4. setTimeout(fungsi, durasi);

Tapi saya percaya Anda dapat mengira-ngira fungsi dari baris-baris program tersebut. Dan bila memang belum paham, dapat melakukan googling. Karena Googling adalah suatu ilmu rahasia, jurus tingkat tertinggi dalam belajar pemrograman. Salam koding :)


Session 

Sama halnya dengan variabel, session juga digunakan untuk menyimpan suatu nilai. Yang membedakan yaitu session dapat diakses oleh file lain selama session belum dihapus atau browser belum ditutup. Session biasanya digunakan untuk pembuatan halaman login. Dengan menggunakan session, dapat dicek apakah user sudah login atau belum. Session dibuat dengan menggunakan superglobal variabel $_SESSION[]. Sebelum menggunakannya, harus menuliskan function session_start(). Sedangkan untuk menghapus session dapat menggunakan function session_destroy(). Atau dengan cara menutup browser, session akan otomatis terhapus.

Di bagian ini, kita akan melihat yang berikut ini untuk bekerja dengan session PHP. Ini adalah,

  • Memulai session
  • Menyimpan variabel session
  • Mengakses variabel session
  • Menghapus variabel session

PHP memiliki fungsi built-in bernama session_start (). Fungsi ini digunakan untuk memulai sesi baru atau melanjutkan sesi yang sudah ada. Dengan memulai sesi, ini akan memanggil penangan sesi untuk membaca dan mengembalikan data sesi saat ini dengan menggunakan fungsi callback. Pada PHP versi 7, fungsi ini dapat memiliki array opsi asosiatif sebagai argumennya. Dengan menggunakan opsi ini, kita dapat menimpa konfigurasi sesi default.

Array $ _SESSION digunakan untuk membuat variabel sesi. Dalam kode berikut, saya telah membuat sesi baru dengan indeks bernama tagName.

session_start ();
$ _SESSION [“tagName”] = “PHP”;

Setelah data disimpan dalam variabel sesi, maka data tersebut berada dalam cakupan global dan dapat diakses dari file PHP apa pun.

session_start ();
$ tag = $ _SESSION [“tagName”];
echo “Selamat datang di $ tag world!”;

PHP menyediakan fungsi untuk menghapus data sesi yang ada. Yaitu, session_destroy (), session_unset () dan banyak lagi.

Fungsi session_destroy () digunakan untuk menghapus semua data sesi saat ini. Setelah menghancurkan sesi, kita harus memuat ulang halaman untuk melihat bahwa sesi dihapus.

Untuk membuat aksi session_destroy () menunjukkan efek langsung, kita bisa memanggil fungsi session_unset () atau unset () untuk menghapus data sesi. Kode menunjukkan contoh untuk menghapus variabel sesi.

session_start ();
session_destroy ();
echo $ _SESSION [“tagName”]; // sesi tetap sampai refresh
tidak disetel ($ _ SESSION [“tagName”]);
echo $ _SESSION [“tagName”]; // sesi tidak lagi;

Cookie

Hampir sama dengan session, namun data dari cookie tidak akan terhapus ketika browser ditutup. Data cookie akan terhapus setelah batas waktu yang telah ditentukan. Cara membuat cookie yaitu dengan menggunakan function setcookie() dan cara penulisannya yaitu setcookie(nama_cookie, nilai, batas_waktu). Batas waktu cookie dihitung dengan satuan detik. Untuk menampilkan sebuah cookie dapat menggunakan superglobal variabel $_COOKIE[nama_cookie].

Fungsi Cookie :

  • Menyimpan username dan password login agar pengguna tidak selalu harus mengisikannya pada saat membuka page (halaman web). Biasanya akan muncul chechbox “Remember Me” atau “Ingat Saya Selalu” yang terdapat pada bagian bawah box login.
  • Merekam daftar barang yang ingin dibeli pengunjung
  • Untuk mencatat konfigurasi yang dilakukan oleh user. Seperti: warna tema, jenis huruf, pilihan bahasa, dll.
  • Membuat suatu sesi yang akan memungkinkan seseorang dapat langsung masuk ke halaman-halaman lain tanpa harus melakukan login kembali.
  • Untuk mengetahui apakah pengunjung pernah datang atau belum ke halaman yang sedang dibuka (seperti yang digunakan pada hit counter /penghitung jumlah pengunjung pada blog).

Jenis Cookie :

  • Non-persistent cookie : Non-persistent cookie bersifat sementara dan tidak ditempatkan di hard drive sistem Anda. Mereka secara otomatis dibuang saat browser Web ditutup.
  • Persistent cookie : Cookie yang persisten akan memiliki waktu Tanggal Kedaluwarsa yang ditetapkan dari server web. Ketika server web Http mengirimkan tanggapan itu akan mengatur waktu kadaluwarsa cookie. Waktu kedaluwarsa cookie bisa relatif lebih pendek seperti 20 menit, atau selama 1 tahun.

Di PHP, kita bisa mengatur cookie dengan menggunakan fungsi setcookie (), setrawcookie () atau header (). setrawcookie () sama dengan setcookie (), tetapi berbeda dengan menyetel nilai mentah cookie dengan header tanpa encoding. Fungsi ini harus digunakan sebelum mengirimkan keluaran apapun ke browser. Jika tidak, data cookie tidak akan disetel dengan informasi header.

Saat menyetel cookie, diperlukan informasi seperti nama cookie, domain, waktu kedaluwarsa, dan lainnya. Kode berikut menunjukkan contoh penggunaan untuk mengatur cookie dengan menggunakan fungsi header () dan setcookie ().

Cookie PHP dapat diakses dengan menggunakan variabel $ _COOKIE. Selain itu, kita dapat menggunakan fungsi superglobals lain seperti $ _SERVER, $ _ENV dan PHP getenv () untuk mengakses cookie dengan menentukan indeks HTTP_COOKIE seperti yang ditunjukkan pada kode di bawah ini. Tapi, $ _COOKIE memiliki akses terjamin di semua server dibandingkan dengan variabel global lainnya. Karena beberapa konfigurasi server tidak mengizinkan kita mengakses variabel $ _SERVER, $ _ENV.

echo $ _COOKIE [“platform”]; // Keluaran: php
// ATAU
echo $ _SERVER [‘HTTP_COOKIE’]; // Keluaran: platform = php
echo getenv (‘HTTP_COOKIE’); // Keluaran: platform = php

Apa fungsi dari session pada php?

Fungsi session adalah untuk melakukan aktivitas yang berhubungan dengan interaksi user pada sebuah web server php.

Apakah fungsi dari session pada php jelaskan beserta contohnya?

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 ...

Apakah perbedaan Session_destroy () dan Session_unset ()?

session_unset() = untuk menghapus session variabel saja, tidak menghapus session secara keseluruhan dalam artian, tidak perlu deklarasi session_start(). session_destroy() = Untuk menghapus session secara keseluruhan, dan untuk menggunakan session lagi, maka harus deklarasikan session_start() kembali.

Apa yang dimaksud dengan session dan cookies?

Perbedaan antara session dan cookie yaitu, session menyimpan data pada sisi server sedangkan cookie menyimpan data pada sisi client dan karena itulah session lebih aman dalam menyimpanan data maupun file dibanding cookie karena penyimpanan dilakukan di sisi server.