Untuk menjelaskan tentang SESSION dan kegunaannya, saya akan mulai dengan memberikan contoh visualisasi terlebih dahulu.
Misalkan kita memiliki sebuah form sebagai berikut
<form method="post" action="submit.php">
Bilangan ke-1 <input type="text" name="bil1" /><br /> Bilangan ke-1 <input type="text" name="bil1" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
Form di atas digunakan untuk memasukkan dua buah bilangan. Selanjutnya kita buat script untuk membaca kedua bilangan yang diinputkan tersebut
submit.php
<?php
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>";
?>
Apabila kita telah memasukkan dua buah bilangan melalui form, kemudian mensubmitnya maka pada script submit.php akan memunculkan kedua bilangan tersebut dengan sukses.
Pada submit.php ini terdapat pula link menuju script lanjut.php. Dalam script lanjut.php ini, kita juga akan menampilkan kedua bilangan yang diinputkan sebelumnya.
lanjut.php
<?php
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />"
echo "<a href='lanjut.php'>Klik di sini</a>";
?>
Nah… apa yang terjadi bila kita mengklik link menuju ke lanjut.php tersebut? Apakah kedua bilangan yang diinputkan tadi masih bisa terbaca nilainya? Jawabannya adalah TIDAK. Kedua bilangan hanya bisa terbaca pada script submit.php saja, karena submit.php adalah halaman pertama setelah pemrosesan form.
Mungkin Anda berpikiran bahwa perlu ditambahkan perintah
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
pada lanjut.php. Cara ini pun juga tidak bisa untuk membaca kedua bilangan.
Trus.. bagaimana supaya dalam lanjut.php ini kedua bilangan yang diinputkan masih bisa dibaca nilainya?
Untuk mengatasi hal ini terdapat 2 solusi yang bisa digunakan, yaitu menggunakan GET
method atau SESSION.
Trus… bagaimana dengan menggunakan SESSION? Ya… dengan menggunakan SESSION, kita tidak perlu menuliskan nilai input dalam URL link. Nilai input ini nantinya akan disimpan dalam suatu variabel SESSION. Selama browser kita masih aktif (browse belum ditutup) atau sengaja dinonaktifkan (dihapus) SESSION nya, maka variabe SESSION ini masih terus aktif.
Nilai yang disimpan dalam variabel SESSION ini bisa dibaca atau dikenali di beberapa halaman script. Beda dengan variabel biasa. Kalau variabel biasa itu hanya dikenali pada halaman script tersebut saja.
Selanjutnya bagaimana cara menyimpan nilai ke dalam suatu variabel SESSION? Ya… sebelum mulai menyimpan, kita harus mengaktifkan SESSION nya terlebih dahulu menggunakan perintah
session_start();
S etelah SESSION aktif, barulah kita bisa membuat variabel SESSION untuk menyimpan nilai. Berikut ini perintah untuk menyimpan sebuah nilai ke dalam variabel SESSIO
$_SESSION['namaSession'] = value;
Nilai yang bisa disimpan dalam SESSION ini bisa berupa bilangan, array, karakter maupun string.
Sehingga apabila konsep ini diterapkan pada contoh di atas, maka berikut ini adalah script submit.php yang telah dimodifikasi
submit.php
<?php
session_start(); // mengaktifkan SESSION
$bil1 = $_POST['bil1'];
$bil2 = $_POST['bil2'];
// menyimpan kedua bilangan ke dalam SESSION
$_SESSION['bil1'] = $bil1;
$_SESSION['bil2'] = $bil2;
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
echo "<a href='lanjut.php'>Klik di sini</a>";
?>
Kemudian, bagaimana dengan script lanjut.php nya? Bagaimana cara menampilkan nilai kedua bilangan yang disimpan dalam SESSION? Ini dia scriptnya.
lanjut.php
<?php session_start();
// membaca nilai dari variabel SESSION
$bil1 = $_SESSION['bil1'];
$bil2 = $_SESSION['bil2'];
echo "Anda memasukkan bilangan ke-1 : ".$bil1."<br />";
echo "Anda memasukkan bilangan ke-2 : ".$bil2."<br />";
?> Keterangan:
Dalam script lanjut.php di atas, kita tetap memberikan perintah session_start() karena
dalam script lanjut.php ini kita masih memanfaatkan variabel SESSION.
Menghapus Variabel SESSION
Kemudian, bagaimana cara menghapus variabel SESSION? Cara pertama, Anda akan langsung bisa menghapus SESSION bila Anda keluar dari browser (EXIT), buka meminimize lho! Cara kedua, gunakan perintah berikut ini pada script.
session_destroy();
Dengan perintah tersebut, maka semua variabel SESSION akan terhapus. Namun, bagaimana bila hanya ingin menghapus suatu variabel SESSION tertentu saja? Untuk hal ini, gunakan perintah unset()
unset($_SESSION['nama session']);
Penerapan SESSION
Biasanya, SESSION ini digunakan untuk keperluan autentifikasi user melalui login. Adapun idenya adalah apabila user sukses melakukan login, maka username ini akan disimpan dalam sebuah SESSION.
Mengapa username ini harus disimpan ke dalam SESSION? Ya… dengan disimpannya username ke dalam SESSION sekaligus bisa digunakan untuk mencegah adanya penyusup yang masuk ke aplikasi tanpa melalui login.
Lho? Kok bisa, logikanya bagaimana? Ya.. untuk mengecek ada tidaknya penyusup yang masuk ke aplikasi tanpa login, bisa hanya dengan mengecek SESSION nya. Jika penyusup tadi masuk ke aplikasi tanpa login, otomatis SESSION nya belum ada, karena SESSION baru ada ketika user login dengan sukses.
Soal-soal tentang SESSION
Buatlah autentifikasi user dari suatu aplikasi web menggunakan konsep SESSION. Adapun username-username yang boleh mengakses aplikasi ini adalah
Username dan password di atas harus disimpan dalam sebuah ARRAY. Adapun konsepnya sama seperti pada pengerjaan soal no. 5 Bab 11.
Selanjutnya, bagi-bagilah layout tersebut ke dalam modul header.php dan footer.php Untuk halaman utama, tampilkan form login untuk user.
Selanjutnya bila login berhasil tampilkan halaman berikut ini (munculkan link navigasi)
Keterangan:
Catatan:
Script
Berikut ini gambaran aplikasinya:
Terlebih dahulu buatlah sebuah desain halaman web dengan layout seperti di bawah ini:
Login dikatakan berhasil bila password yang dimasukkan oleh seorang user melalui form login sama dengan password yang tersimpan dalam aplikasi (dalam hal ini password yang ada dalam array). XXX adalah username yang sukses login.
Untuk setiap halaman Link 1, 2, dan 3 berikut ini tampilannya
Aplikasi yang dibuat harus bisa menghandle apabila login salah, misalnya muncul keterangan “Password yang dimasukkan salah” bila username terdaftar namun passwordnya salah, atau “Username tidak terdaftar” bila usernamenya tidak terdaftar dalam aplikasi.
Bila password login salah atau user tidak terdaftar, maka menu link navigasi tidak ditampilkan
Aplikasi yang dibuat harus bisa menghandle adanya penyusup yang ingin langsung masuk ke halaman Link 1, 2 dan 3 tanpa melalui login (autentifikasi). Aplikasi yang dibuat harus bisa menghandle proses logout.
Header
Footer
Form
Header1
Login
Login Berhasil
Link 1
Link 2
Link 3
Logout
Output Program
Yak jadi seperti itu temen-temen penjelasan dan contoh soal tentang SESSION. Saya kira cukup belajar bareng untuk kali ini. Semoga apa yang kita pelajari kali ini bisa berguna untuk sekarang, besok dan kapanpun, amin. Jika ada saran, komentar, kritik, pertanyaan dan request bisa temen-temen tulis di kolom komentar. Oke guys sampai bertemu di pembahasan selanjutnya.
Username dan password di atas harus disimpan dalam sebuah ARRAY. Adapun konsepnya sama seperti pada pengerjaan soal no. 5 Bab 11.
Selanjutnya, bagi-bagilah layout tersebut ke dalam modul header.php dan footer.php Untuk halaman utama, tampilkan form login untuk user.
Selanjutnya bila login berhasil tampilkan halaman berikut ini (munculkan link navigasi)
Keterangan:
Catatan:
Script
Berikut ini gambaran aplikasinya:
Terlebih dahulu buatlah sebuah desain halaman web dengan layout seperti di bawah ini:
Login dikatakan berhasil bila password yang dimasukkan oleh seorang user melalui form login sama dengan password yang tersimpan dalam aplikasi (dalam hal ini password yang ada dalam array). XXX adalah username yang sukses login.
Untuk setiap halaman Link 1, 2, dan 3 berikut ini tampilannya
Aplikasi yang dibuat harus bisa menghandle apabila login salah, misalnya muncul keterangan “Password yang dimasukkan salah” bila username terdaftar namun passwordnya salah, atau “Username tidak terdaftar” bila usernamenya tidak terdaftar dalam aplikasi.
Bila password login salah atau user tidak terdaftar, maka menu link navigasi tidak ditampilkan
Aplikasi yang dibuat harus bisa menghandle adanya penyusup yang ingin langsung masuk ke halaman Link 1, 2 dan 3 tanpa melalui login (autentifikasi). Aplikasi yang dibuat harus bisa menghandle proses logout.
Header
<html>
<head>
<title>Layout</title>
</head>
<body>
<table width=100% border=1 style="border-collapse:collapse">
<tr>
<td colspan=2><center> <p> <b>TITLE</b> </p> <br>
</center></td>
</tr>
Footer
<tr>
<td colspan=2><center><b><i>Design by RaFa_41</i>
</b></center></td>
</tr>
</body>
</html>
Form
<?php
include "header.php";
?>
<tr>
<td><center><b>Silahkan Login</b></center></br>
<center>
<form method="post" action="login.php">
Username <input type="text" name="un"><br />
Password <input type="password" name="pass"><br />
<input type="submit" name="submit" value="Submit" />
</form>
</center>
</td>
</tr>
<?php
include "footer.php";
?>
Header1
<?php
session_start();
$un = $_SESSION['un'];
?>
<head>
<title>Layout</title>
</head>
<body>
<table width=100% border=1 style="border-collapse:collapse">
<tr>
<td align="right" colspan=2>
<center> <p> <b>TITLE</b> </p> <br> </center>
<?php
echo "Username : ".$un;
?>
</td>
</tr>
Login
<?php
session_start();
$un = $_POST['un'];
$pass = $_POST['pass'];
$_SESSION['un'] = $un;
$_SESSION['pass'] = $pass;
array ( Username , Password,
A , password1,
B , password2,
C , password3,
D , password4,
E , password5 );
switch($un)
{
case $un == ' ' && $pass == ' ' :
echo "<b>Anda belum memasukkan Username dan Password</b>";
include "form.php";
break;
case $un == 'A' && $pass != 'password1' ;
case $un == 'B' && $pass != 'password2' ;
case $un == 'C' && $pass != 'password3' ;
case $un == 'D' && $pass != 'password4' ;
case $un == 'E' && $pass != 'password5' ;
echo "<b>Password yang anda masukan salah</b>";
include "form.php";
break;
case $un == 'A' && $pass == 'password1' ;
case $un == 'B' && $pass == 'password2' ;
case $un == 'C' && $pass == 'password3' ;
case $un == 'D' && $pass == 'password4' ;
case $un == 'E' && $pass == 'password5' ;
include "loginberhasil.php";
break;
default :
echo "<b> Username tidak terdaftar </b>";
include "form.php";
break;
}
?>
Login Berhasil
<?php
include "header1.php";
?>
<tr>
<td>
<center><b>Anda Telah Berhasil Login</b></center></br>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
</center></br>
<center>
<a href=logout.php> Logout</a>
</center>
</td>
</tr>
<?php
include "footer.php";
?>
Link 1
<?php
include "header1.php";
?>
<tr>
<td>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
<a href=logout.php> Logout </a>
</center></br>
<center><b>Politeknik Terbaik Se-Indonesia Adalah
Politeknik Elektronika Negeri Surabaya</b></center></br>
</td>
</tr>
<?php
include "footer.php";
?>
Link 2
<?php
include "header1.php";
?>
<tr>
<td>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
<a href=logout.php> Logout </a>
</center></br>
<center><b>HIMA ELKA (Himpunan Mahasiswa Teknik Elektronika)
ORRA ARISTO</b></center></br>
</td>
</tr>
<?php
include "footer.php";
?>
Link 3
<?php
include "header1.php";
?>
<tr>
<td>
<center>
<a href=link1.php>Link1</a>|
<a href=link2.php>Link2</a>|
<a href=link3.php>Link3</a>|
<a href=logout.php> Logout </a>
</center></br>
<center><b>PENS JOSS (Jujur, Orisinil, Semangat, Santun)
</b></center></br>
</td>
</tr>
<?php
include "footer.php";
?>
Logout
<?php
session_start();
session_destroy();
include "form.php";
?>
Output Program
Form Login
Login sukses
Ketika link 1 dipilih
Ketika link 2 dipilih
Ketika link 3 dipilih
Sesudah di logout
Yak jadi seperti itu temen-temen penjelasan dan contoh soal tentang SESSION. Saya kira cukup belajar bareng untuk kali ini. Semoga apa yang kita pelajari kali ini bisa berguna untuk sekarang, besok dan kapanpun, amin. Jika ada saran, komentar, kritik, pertanyaan dan request bisa temen-temen tulis di kolom komentar. Oke guys sampai bertemu di pembahasan selanjutnya.
-byee
#SalamOrangBodo
Tidak ada komentar:
Posting Komentar