Session
Cookies
|
Session merupakan hal yang cukup penting dalam aplikasi berbasis web. Dengan
session memungkinkan programmer menyimpan informasi user secara semi-permanen,
artinya selama masa tertentu informasi akan tersimpan. Penyimpanan isi variabel
session berada di server, jadi tidak bisa diakses secara langsung oleh client. Dalam
aplikasi berbasis web, session banyak digunakan sebagai autentifikasi login.
Dengan session memungkinkan programmer mengatur siapasaja yang bisa mengakses
suatu halaman. Misalnya saja, untuk melihat halaman kotak surat pada email,
kita harus login terlebih dahulu. Dalam proses login antara lain akan terjadi
pembuatan suatu session yang akan dibawa oleh user di setiap halaman. Di
halaman kotak surat, session tersebut akan diperiksa. Jika session benar maka
user dipersilahkan membuka halaman kotak surat, namun jika salah maka user
tidak bisa membuka halaman kotak surat dan biasanya akan diminta untuk login
terlebih dahulu. Itulah sebabnya, user tidak bisa mengakses halaman kotak surat
secara langsung tanpa melakukan login. Dalam penanganan session terdapat
beberapa proses yang perlu diperhatikan :
Proses pembuatan session
Proses pemeriksaan session
Proses penghapusan session
Selanjutnya bagaimana session itu sendiri dijalankan? Agar proses
penyimpanan dalam session berjalan, PHP melakukan beberapa hal berikut ini :
1. PHP meng-generate (membentuk) sebuah ID session.
ID session ini merupakan sejumlah deret angka
random yang unik untuk
setiap user dan hampir tidak mungkin bisa
ditebak. ID session disimpan oleh
PHP di dalam variabel sistem PHP dengan nama
PHPSESSID
2. PHP menyimpan nilai yang akan Anda simpan dalam session di dalam file yang
berada di server.
Nama file tempat penyimpanan session tersebut
sesuai (sama) dengan ID session. File disimpan dalam suatu direktori yang
ditunjukkan oleh session.save_path dalam file php.ini.
3. PHP melempar ID session ke setiap halaman.
4. PHP mengambil nilai session dari file session untuk setiap halaman
session.
Program 9.1
Nama File : session01.php
Deskripsi :
Program menciptakan session.
<?php
/****************************************************
Nama file : session01.php
Halaman ini merupakan halaman contoh penciptaan
session.
Perintah session_start() harus ditaruh di
perintah pertama
tanpa spasi di depannya. Perintah session_start()
harus ada
pada setiap halaman yang berhubungan dengan
session
*****************************************************/
session_start();
if (isset ($_POST['Login'])) {
$user = $_POST['user'];
$pass = $_POST['pass'];
//periksa login
if ($user == "achmatim" &&
$pass = "123") {
//menciptakan session
$_SESSION['login'] = $user;
//menuju ke halaman pemeriksaan session
echo "<h1>Anda berhasil
LOGIN</h1>";
echo "<h2>Klik <a
href='session02.php'>di sini
(session02.php)</a>
untuk menuju ke halaman pemeriksaan
session";
}
} else {
?>
<html>
<head>
<title>Login here...</title>
</head>
<body>
<form action=""
method="post">
<h2>Login Here...</h2>
Username : <input type="text"
name="user"><br>
Password : <input type="password"
name="pass"><br>
<input type="submit"
name="Login" value="Log In">
</form>
</body>
</html>
<? } ?>
|
Penjelasan Program 9.1.
Pada program di atas terdapat fungsi session_start() yang berada pada baris
ke-9. Fungsi session_start() berfungsi untuk memulai sebuah session. Fungsi
harus dipanggil pertama kali dalam suatu halaman PHP, artinya fungsi session_start()
harus dipanggil sebelum sesuatu tampil di layar, walaupun hal itu hanya berupa
spasi. Jika sebelum session_start() terdapat output yang ditampilkan maka akan
terjadi error seperti pada gambar 9.1 berikut ini :
Selanjutnya,
program 9.1 akan menampilkan sebuah form login sederhana di layar. Form terdiri
dari form inputan username, password dan sebuah tombol login. Jika tombol login
ditekan maka pemeriksaan kondisi pada baris 10 akan bernilai TRUE dan perintah
yang ada di blok if akan dieksekusi. Baris 11 dan 12 merupakan perintah untuk
mengambil nilai pada form inputan username dan password. Nilai username dan
password tersebut diperiksa pada baris 14. Pemeriksaan username dan password
ini, untuk aplikasi web yang sudah menggunakan
database, bisa diganti dengan pemeriksaan username dan password ke tabel database. Pada baris 16, terdapat perintah sebagai berikut
:
$_SESSION['login']
= $user;
Baris perintah tersebut merupakan perintah untuk membuat session baru
(create session) dimana nama session adalah “login” dan isi dari session adalah
$user. $_SESSION
merupakan sebuah variabel array global yang didefinisikan oleh PHP, jadi variabel ini harus ditulis dengan huruf
kapital (upper-case). Selanjutnya,
pada baris 18-20 akan ditampilkan pesan bahwa login berhasil dan juga sebuah link menuju ke halaman pemeriksaan
session (session02.php, program 9.2).
Program 9.2
Nama File : session02.php
Deskripsi :
Program pemeriksaan session.
<?php
/*************************************************************
Halaman ini merupakan contoh halaman pemeriksaan
session. Pemeriksaan
session biasanya dilakukan jika suatu halaman
memiliki
akses terbatas. Misalnya harus login terlebih
dahulu.
**************************************************************/
session_start();
//pemeriksaan session
if (isset($_SESSION['login'])) { //jika sudah
login
//menampilkan isi session
echo "<h1>Selamat Datang ".
$_SESSION['login'] ."</h1>";
echo "<h2>Halaman ini hanya bisa
diakses jika Anda sudah
login</h2>";
echo "<h2>Klik <a
href='session03.php'>di sini
(session03.php)</a> untuk
LOGOUT</h2>";
} else {
//session belum ada artinya belum login
die ("Anda belum login! Anda tidak berhak
masuk ke halaman
ini.Silahkan login <a
href='session01.php'>di sini</a>");
}
?>
|
Penjelasan Program 9.2
Program 9.2 di atas diawali dengan pemanggilan fungsi session_start(). Hal ini
berarti dalam halaman program ini terdapat operasi session. Pada baris 10 program
di atas, terdapat pemeriksaan keberadaan variabel $_SESSION[‘login’] dengan
menggunakan fungsi isset().
Pemeriksaan kondisi ini akan bernilai TRUE jika $_SESSION[‘login’] sudah
terbentuk. Jika bernilai TRUE maka blok program baris 11-14 yang akan
dieksekusi, dan sebaliknya, jika FALSE maka blok program baris 16-17 yang akan
dijalankan. Blok program baris 11-14 hanya bisa diakses saat user sudah login dengan
benar. Dengan kata lain, bagian tersebut
merupakan bagian yang bersifat private (terbatas). Untuk menampilkan
isi variabel session dapat dilakukan seperti pada baris 12 program di atas.
Cukup dengan meng-echo variabel $_SESSION[‘login’]. Jika user belum login
(tidak melewati halaman login) atau langsung
mengakses halaman ini, maka akan ditampilkan pesan bahwa user tidak
berhak masuk ke halaman ini. Fungsi die()
pada baris 17 digunakan untuk menampilkan suatu
pesan sekaligus men-terminate program, artinya perintah selain die() akan diabaikan.
Program 9.3
Nama File : session03.php
Deskripsi : Program menghapus session.
<?php
/********************************************************
Halaman ini merupakan halaman logout, dimana kita menghapus
session yang ada.
*********************************************************/
session_start();
if (isset($_SESSION['login'])) {
unset ($_SESSION);
session_destroy();
//
echo "<h1>Anda sudah berhasil LOGOUT</h1>";
echo "<h2>Klik <a href='session01.php'>di
sini</a> untuk
LOGIN kembali</h2>";
echo "<h2>Anda sekarang tidak bisa masuk ke halaman
<a href='session02.php'>session02.php</a>
lagi</h2>";
}
?>
|
Penjelasan Program 9.3.
Program 9.3 merupakan contoh program penghapusan session. Penghapusan
session biasanya digunakan ketika user melalukan logout. Proses penghapusan
session dilakukan dengan memanggil fungsi unset() dan fungsi session_destroy().
Fungsi unset() digunakan untuk menghapus atau menghilangkan suatu variabel.
Sedangkan session_destroy() digunakan untuk menghapus semua data yang
berhubungan dengan session tersebut.
Cookies
Seperti halnya session, cookies juga merupakan sebuah konsep penyimpanan
informasi user. Hanya saja, jika session tempat penyimpanan berada di server,
cookies berada di client. Oleh karena itu, konsep cookies sebaiknya jangan
digunakan untuk menyimpan informasi login user seperti username, password dsb.
Selain user bisa melihat informasi yang disimpan, user juga bisa men-disable
cookies itu sendiri. Jika cookies di-disable, maka program yang memanfaatkan
cookies tentunya tidak akan berjalan dengan baik.Cookies sendiri biasanya
dipakai dalam aplikasi shooping cart. Biasa digunakan untuk menyimpan
sementara, produk-produk yang dipilih oleh pengunjung pada saat berbelanja. Dalam
penanganan cookies juga terdapat beberapa proses yang perlu diperhatikan :
.. Proses pembuatan cookies
.. Proses pemeriksaan cookies
.. Proses penghapusan cookies
Program 9.4
Nama File : cookie01.php
Deskripsi : Program membuat cookie.
<?php
$value = 'achmatim';
$value2 = 'Achmad Solichin';
setcookie("username", $value);
setcookie("namalengkap", $value2, time()+3600); /* expire
in 1
hour */
echo "<h1>Ini halaman pengesetan cookie</h1>";
echo "<h2>Klik <a href='cookie02.php'>di
sini</a> untuk
pemeriksaan cookies</h2>";
?>
|
Program 9.5
Nama File : cookie02.php
Deskripsi : Program pemeriksaan cookie.
<?php
if(isset($_COOKIE['username'])) {
echo "<h1>Cookie 'username' ada. Isinya : " .
$_COOKIE['username'];
} else {
echo "<h1>Cookie 'username' TIDAK
ada.</h1>";
}
if(isset($_COOKIE['namalengkap'])) {
echo "<h1>Cookie 'namalengkap' ada. Isinya : "
.
$_COOKIE['namalengkap'];
} else {
echo "<h1>Cookie 'namalengkap' TIDAK
ada.</h1>";
}
echo "<h2>Klik <a href='cookie01.php'>di
sini</a> untuk
penciptaan cookies</h2>";
echo "<h2>Klik <a href='cookie03.php'>di
sini</a> untuk
penghapusan cookies</h2>";
?>
|
Program 9.6
Nama File : cookie03.php
Deskripsi : Program penghapusan
cookie.
<?php
// set the expiration date to one hour ago
setcookie ("username", "", time() - 3600);
setcookie ("namalengkap", "", time() - 3600);
echo "<h1>Cookie Berhasil dihapus.</h1>";
echo "<h2>Klik <a href='cookie01.php'>di
sini</a> untuk
penciptaan cookies</h2>";
echo "<h2>Klik <a href='cookie02.php'>di
sini</a> untuk
pemeriksaan cookies</h2>";
?>
|
0 comments:
Post a Comment