Professional Documents
Culture Documents
Pada dasarnya session adalah sebuah jalan untuk menjaga kondisi variable antar halaman
web. Maksudnya variable yang disimpan dalam session akan dikenal di semua halaman
web dengan syarat setiap awal dari script php dimulai dengan fungsi session_start().
Sekali session di buat, anda dapat meregisterkan beberapa variable. Nilai dari variable
tersebut disimpan dalam file yang ada di server. Penregisteran variable adalah dengan
menggunakan perintah session_register.
Fungsi-fungsi yang banyak dipakai dalam penanganan web page dengan session adalah :
1. session_start() berfungsi untuk memulai/mengaktifkan session.
2. session_register() berfungsi untuk mendaftarkan suatu variable ke dalam session.
Parameter dari fungsi ini adalah nama variable yang akan disimpan di session.
3. session_unregister() berfungsi untuk menghapus suatu variable yang disimpan di
session.
4. session_is_registered() berfungsi untuk memeriksa apakah suatu variable
ada/terdaftar dalam session.
5. session_unset() berfungsi untuk menghapus semua variable yang terdaftar dalam
session.
6. session_destroy() berfungsi untuk menutup/menghapus session beserta file
sessionnya.
Halaman - 1
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Contoh 1 :
Nama File : buatsession.php
<?
session_start();
session_register("banyakberkunjung");
session_register("nama","kota");
$banyakberkunjung=0;
$nama="Andri Heryandi";
$kota="Ciamis";
echo "Session Telah dibuat";
?>
Keterangan Program :
Baris Program Keterangan
session_start() Buat session
session_register("banyakberkunjung") Buat variable $banyakberkunjung
session_register("nama","kota") Buat variable $nama dan $kota dalam 1
perintah session_register()
$banyakberkunjung=0 $banyakberkunjung diisi 0
$nama="Andri Heryandi" $nama diisi “Andri Heryandi”
$kota="Ciamis" $kota diisi “Ciamis”
echo "Session Telah dibuat" Keterangan “Session Telah Dibuat”
banyakberkunjung|i:0;nama|s:14:"Andri Heryandi";kota|s:6:"Ciamis";
Itu menunjukan ada variable banyakberkunjung bertipe int (i), dengan isi 0, juga ada
variable nama dengan tipe string (s) dengan panjang 14 karakter berisi “Andri
Heryandi” dan ada pula variable kota bertipe string (s) dengan panjang 6 karakter berisi
“Ciamis”.
Halaman - 2
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Contoh 2 :
Nama File : testsession.php
<?
session_start();
if(session_is_registered("nama"))
{
$banyakberkunjung++;
?>
<html>
<head><title>Testing Session</title></head>
<body>
Selamat datang <b><? echo $nama;?></b>
dari <b><? echo $kota;?></b>
<br><br>
Anda telah membuka halaman ini sebanyak
<b><i><? echo $banyakberkunjung;?></i></b> kali.
<Br>
Klik Refresh untuk test lagi.
</body>
</html>
<?
}
else
echo "Anda harus memanggil buat session dulu.";
?>
Keterangan Program :
Baris Program Keterangan
session_start() Buat/mengaktifkan session
if(session_is_registered("nama")) Jika variable $nama telah terdaftar (is
registered) di session , maka …
$banyakberkunjung++ Nilai variable $banyakberkunjung ditambah 1
<? echo $nama;?> Menampilkan variable session $nama
<? echo $kota;?> Menampilkan variable session $kota
<? echo $banyakberkunjung;?> Menampilkan variable $banyakberkunjung
Jika anda memanggil web page ini berulang kali, maka variable $banyakberkunjung akan
bertambah terus. Itu menunjukan variable $banyakberkunjung dapat dipanggil di
sembarang web page yang awal scriptnya dimulai dengan session_start().
Halaman - 3
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Contoh 3 :
Nama File : hapussession.php
<?
session_start();
session_unset();
session_destroy();
echo "Session telah dihapus";
?>
Jika anda mencoba memanggil lagi file testsession.php, maka yang akan muncul adalah
pesan bahwa “Anda harus memanggil buat session dulu.”.
Kesimpulan :
Dari sifat-sifat session di atas, maka kalau diperhatikan, contoh 1 (buatsession.php)
bisa kita anggap sebagai proses login, kemudian contoh 2 (testsession.php) adalah
proses menampilkan web yang hanya bisa dibuka/ditampilkan ketika seorang user
telah melakukan proses login (setelah memanggil buatsession.php), serta contoh 3
(hapussession.php) adalah proses logout user. Oleh karena itu untuk membuat
suatu web site yang mengunakan fasilitas login, kita dapat menggunakan fasilitas
session untuk penyimpan variable yang dapat diakses di semua halaman web.
Halaman - 4
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Contoh kasus yang akan digunakan adalah web database pendataan barang yang telah
dibuat ketika perkuliahan. Dari fasilitas yang ada yaitu tambah barang, edit barang, hapus
barang, tampil barang dan pencarian barang, tentunya ada beberapa fasilitas yang hanya
boleh dilakukan oleh administrator web yaitu tambah barang, edit barang dan hapus
barang. Sedangkan untuk fasilitas pencarian atau tampil data barang tentunya pengunjung
boleh menggunakannya (untuk public).
Oleh karena itu ada beberapa hal yang harus dilaksanakan untuk membuat website yang
memiliki fasilitas login yaitu :
1. Di halaman awal dari web site kita (index.php) harus dibuat suatu form untuk
melakukan proses login.
2. Karena user administrator yang bekerja lebih dari 1 orang maka data user dan
passwordnya di simpan dalam tabel bernama adminweb di database penjualan.
3. Agar password tidak bisa dibaca oleh sembarang orang, maka field password milik
user sebaiknya dienkripsi dengan fungsi password() dari MySQL.
Halaman - 5
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Oleh karena itu, maka langkah pertama adalah membuat tabel adminweb dengan struktur
seperti di bawah ini.
Hati-hati pada bagian passuser, karena enkripsi data menggunakan fungsi password()
menggunakan case sensitive (huruf kecil dan capital dibedakan).
Halaman - 6
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Karena ketika pengisian field passuser menggunakan fungsi PASSWORD, maka jangan
kaget kalau data yang tersimpan sudah dalam bentuk terenkripsi. Lihat di tabel di bawah
ini.
iduser namauser passuser
Andri Andri Heryandi 769c7aa841266403
Hery Hery Yulianto 7c93c83b2233794e
Susy Susilawati 42676b19436048bd
Sesudah membuat tabel dan mengisi beberapa orang user, maka langkah berikutnya
membuat web page utama yaitu index.php. Dalam index.php harus terdapat fasilitas
untuk pencarian atau tampil data, karena kedua fasilitas ini boleh diakses oleh semua
orang. Juga harus ditampilkan sebuah form untuk proses login admininstrator web. Oleh
karena itu buat web page seperti di bawah ini.
Name=iduser
Type=text
Name=passuser
Type=password
Jika administrator web mengisi user id dan password dan kemudian menekan tombol
Login, maka akan melakukan action ke file login.php yang akan memeriksa apakah
loginnya telah benar. Jika benar maka buat session dan tampilkan link-link ke halaman
web administrator seperti penambahan, penghapusan, pengeditan data dan logout.
Halaman - 7
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Halaman - 8
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Halaman - 9
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
<ul>
<li>Penambahan Data Barang</li>
<li>Penghapusan Data Barang </li>
<li>Pengeditan Data Barang</li>
<li>Pencarian Data</li>
<li>Menampilkan Data Barang</li>
</ul>
</td>
</tr>
</table>
</body>
</html>
<?
}
else
printf("Login atau password yang anda masukkan salah.");
?>
Dalam file ini, ada proses pencarian data user ke tabel adminweb. Jika data telah
ditemukan maka akan menghasilkan banyakdata lebih besar dari 0 (kalau ditemukan
banyak data pasti 1 karena primary key di iduser). Perhatikan pada bagian perbandingan
userpass. Perbandingan userpass dilakukan dengan lebih dahulu mengenkripsi userpass
dari form login, kemudian dibandingkan dengan userpass yang ada di database.
Jika user telah ditemukan dan password telah benar maka buat session dan kemudian
daftarkan variable iduser dan namauser yang diambil dari database serta variable
sudahlogin yang diisi dengan true yang menandakan bahwa user telah melakukan proses
login. Kemudian tampilkan halaman web yang berisi link menu ke fasilitas administrator
seperti ke penambahan, pengeditan, dan lain-lain.
Tetapi jika user tidak ditemukan atau password salah maka tampilkan pesan “Login atau
password yang anda masukan salah.”.
Halaman - 10
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
Langkah berikutnya yang merupakan langkah penting adalah mengedit web page yang
berhubungan dengan administrator. Dalam web page ini harus ada pemeriksaan apakah di
dalam session memiliki variable sudahlogin. Jika sudah memiliki variable sudahlogin,
maka isi web page harus ditampilkan. Jika variable sudahlogin belum ada di session, itu
menunjukan bahwa user tersebut belum login sehingga harus menampilkan pesan bahwa
“user harus login dulu untuk mengakses halaman ini”.
Halaman - 11
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
<?
for($i=1;$i<=12;$i++)
echo "<option>$i</option>";
?>
</select> -
<input type=text name=etahun size=5 maxlength=4>
</td>
</tr>
<tr>
<td>Harga</td>
<td><input type=text name=eharga size=9></td>
</tr>
<tr>
<td>Stok</td>
<td><input type=text name=estok size=9></td>
</tr>
<tr>
<td> </td>
<td><input type=submit value="Simpan"><input type=reset
value="Reset"></td>
</tr>
</table>
<hr color=black width="60%">| <a href="index.php">Awal</a> | <a
href="tampildata.php"> Lihat Data</a> |
</center>
</form>
<hr>
</body>
</html>
Pilih bagian inti dari halaman tersebut (yang hurufnya lebih besar dan diarsir).
2. Langkah selanjutnya membuat suatu template yang akan digunakan dalam setiap
halaman web administrator yang didalamnya memiliki suatu pengecekan apakah
dalam session telah memiliki variable sudahlogin, jika ada maka tampilkan bagian
inti dari web, jika tidak memiliki variable sudah login maka akan menampilkan pesan
bahwa “Anda Belum Login. Login dulu untuk mengakses file ini.”. Adapun
templatenya adalah :
Halaman - 12
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
<?
session_start();
?>
<html>
<head><title>Web Database</title></head>
<body>
<table width=100% border=1>
<tr>
<td align=center><h1>WEB DATABASE</h1></td>
</tr>
</table>
<?
if(session_is_registered("sudahlogin"))
{
?>
<table width="100%" border="0">
<tr>
<td width="200" valign=top>
<table width="100%" border="0">
<tr>
<td bgcolor="#000066" align=center>
<font color=white>Menu Pilihan</font>
</td>
</tr>
<tr><td align=center>
<a href=tambahdata.php>Tambah Data</a></td></tr>
<tr><td align=center>
<a href=editdata.php>Edit Data</a></td></tr>
<tr><td align=center>
<a href=hapusdata.php>Hapus Data</a></td></tr>
<tr><td align=center>
<a href=pencariandata.php>Pencarian</a></td></tr>
<tr><td align=center>
<a href=tampildata.php>Tampil Data</a></td></tr>
<tr><td align=center>
<a href=logout.php>Logout</a></td></tr>
<tr bgcolor="#000066">
<td colspan="2"> </td></tr>
</table>
</td>
<td width="79%" valign="top">
Halaman - 13
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
3. Jadi setelah digabungkan dengan template, maka file tambahdata.php akan menjadi :
Bagian yang diarsir adalah bagian dari file tambahdata.php yang asli dan bagian yang
tidak diarsir adalah bagian dari template.
<?
session_start();
?>
<html>
<head><title>Web Database</title></head>
<body>
<table width=100% border=1>
<tr>
<td align=center><h1>WEB DATABASE</h1></td>
</tr>
</table>
<?
if(session_is_registered("sudahlogin"))
{
?>
<table width="100%" border="0">
<tr>
<td width="200" valign=top>
<table width="100%" border="0">
<tr>
<td bgcolor="#000066" align=center>
<font color=white>Menu Pilihan</font>
</td>
</tr>
<tr><td align=center>
<a href=tambahdata.php>Tambah Data</a></td></tr>
<tr><td align=center>
<a href=editdata.php>Edit Data</a></td></tr>
<tr><td align=center>
<a href=hapusdata.php>Hapus Data</a></td></tr>
<tr><td align=center>
<a href=pencariandata.php>Pencarian</a></td></tr>
<tr><td align=center>
<a href=tampildata.php>Tampil Data</a></td></tr>
<tr><td align=center>
<a href=logout.php>Logout</a></td></tr>
<tr bgcolor="#000066">
<td colspan="2"> </td></tr>
</table>
</td>
<td width="79%" valign="top">
<!-- awal bagian utama -->
<form method=POST action="prosessimpan.php">
<center><font style="font-size: 20pt">PENGISIAN DATA BARANG</font>
<hr color=black width="60%">
<table border=1 cellpadding=2 cellspacing=0
bordercolor="#111111" width="60%">
<tr>
<td width=34%>Kode Barang</td>
<td width=66%>
<input type=text name=ekode size=8 maxlength=6></td>
Halaman - 14
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
</tr>
<tr>
<td>Nama Barang</td>
<td><input type=text name=enama size=21 maxlength=25></td>
</tr>
<tr>
<td>Tanggal</td>
<td>
<select size=1 name=etanggal>
<?
for($i=1;$i<=31;$i++)
echo "<option>$i</option>";
?>
</select> -
<select size="1" name="ebulan">
<?
for($i=1;$i<=12;$i++)
echo "<option>$i</option>";
?>
</select> -
<input type=text name=etahun size=5 maxlength=4>
</td>
</tr>
<tr>
<td>Harga</td>
<td><input type=text name=eharga size=9></td>
</tr>
<tr>
<td>Stok</td>
<td><input type=text name=estok size=9></td>
</tr>
<tr>
<td> </td>
<td><input type=submit value="Simpan">
<input type=reset value="Reset"></td>
</tr>
</table>
<hr color=black width="60%">| <a href="index.php">Awal</a> |
<a href="tampildata.php"> Lihat Data</a> |
</center>
</form>
Halaman - 15
Session dan Aplikasinya (Website dengan fasilitas login) Oleh Andri Heryandi
7. Untuk memperbaiki tampilkan ketika seorang yang belum login mengakses halaman
administrator, maka ganti perintah berikut :
echo "Anda Belum Login. Login dulu untuk mengakses file ini.";
Dengan
echo "<script>document.location=\"belumlogin.php\";</script>";
8. Kemudian buat file yang akan ditampilkan ketika seorang user belum login sebagai
berikut :
Nama File : belumlogin.php
<html>
<head><title>Web Database</title></head>
<body>
<table width=100% border=1>
<tr>
<td align=center><h1>WEB DATABASE</h1></td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td valign="top">
<p align="center">
<b><font color=red>
Anda tidak bisa mengakses halaman ini<br><br>
Hanya administrator yang boleh mengakses halaman ini.<br><br>
<a href=index.php>Kembali ke Index</a>
</font></b></p>
</td>
</tr>
</table>
</body>
</html>
9. Selamat Mengerjakan. Semoga Berhasil
Halaman - 16