2016 / 2017
IF-3P2
Praktikum Pemrograman Web
Modul 8
PHP Session
Departemen Sistem Informasi
Institut Teknologi Harapan Bangsa
Mata kuliah : Praktikum Pemrograman Web
Kode Matakuliah : IF-3P2
SKS : 1 SKS
Waktu : 100’
Modul ke : 1
A. Tujuan
1. TIU : Memahami PHP cookie & session
2. TIK : Mahasiswa mampu membuat program dengan cookie & session
B. Bahasan : PHP cookie & session
C. Sub Pokok Bahasan
1.
D. Perangkat keras yang diperlukan: Komputer
Perangkat lunak yang diperlukan: Editor, Browser
Soal Nomor 1
Buatlah halaman login ([Link]) untuk memasukkan nama dan password seperti pada gambar
berikut ini.
Buatlah halaman untuk mencocokkan nama dan password yang tadi dimasukkan ([Link]).
Dalam file tersebut, tersimpan serangkaian pasangan nama dan password (misal:
$kode_rahasia["nama"]="password";). Jika nama tidak ada (fungsi array_key_exists()dapat
digunakan) maka akan muncul pesan berikut ini:
Jika pasangan nama ada, namun nama dan password tidak cocok, maka akan muncul pesan berikut
ini.
Jika nama dan password cocok, user akan diarahkan ke [Link] seperti tampak pada gambar
berikut ini. Catatan: gunakan header("Location: ")untuk berpindah ke halaman tersebut.
Soal Nomor 2
Lanjutkan soal nomor 1. Pada [Link], tambahkan form untuk memasukkan warna tulisan dan
warna latar seperti pada gambar berikut ini.
Warna yang dimasukkan akan dikirim ke [Link]. Kedua warna tersebut disimpan dengan
menggunakan setcookie(). Catatan: Untuk warna pertama (tulisan), gunakan gabungan nama user
dan -w1 sebagai id (misal: buddyholly-w1). Untuk warna kedua (background), gunakan gabungan
nama user dan –w2 sebagai id (misal: buddyholly-w2).
Setelah melakukan setcookie, user diarahkan kembali ke [Link] dengan menggunakan
header("Location: [Link]");. Selanjutnya, user dipersilahkan mengisi nama dan
password kembali seperti pada gambar berikut ini.
Ketika nama dan password cocok, user masuk ke [Link]. Kali ini warna tulisan dan background
disesuaikan dengan warna yang tersimpan dalam cookie.
Untuk membaca cookie, id yang digunakan sama dengan yang tersimpan tadi, yaitu gabungan nama
user dan –w1 atau –w2. Misal: $simpan1 = $_SESSION['nama']."-w1"; Gunakan id tersebut
untuk membaca cookie yang tadi tersimpan. Misal: $warna1 = $_COOKIE[$simpan1];
Kedua warna yang dibaca dari cookie tadi digunakan untuk menentukan warna tulisan dan
background (dengan menerapkan CSS pada body dan tabel untuk form). Hasilnya dapat dilihat pada
gambar berikut ini (misal: tulisan merah, background biru).
Cobalah untuk login dengan beberapa nama yang lain dan menyimpan kombinasi warna yang
berbeda. Perhatiakan apa yang terjadi.
Jawaban
Catatan: Kerjakan yang wana hitam terlebih dahulu. Warna biru merupakan jawaban untuk soal nomor 2.
[Link]
<?php
xxxxxxxxxxx( );
session_destroy( );
?>
<html>
<head><title>Login</title><head>
<body>
<h3> Silahkan Login</h3>
<form name="form1" method="post" action=" xxxxxxxxxxx">
<table width="200" border="0" style="border: solid 1px black; padding: 5px;
background:#FF9; border-radius: 8px;">
<tr>
<td>Nama</td>
<td><input type="text" size="20" name="nama"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" size="20" name="passwd"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="MASUK"></td>
</tr>
</table>
</form>
<br>
</body> </html>
[Link]
<?php
session_start( );
$vnama = xxxxxxxxxx;
$vpasswd = xxxxxxxxxx;
//pasangan nama dan password
$kode_rahasia["ratno"]="123456";
$kode_rahasia["thomas"]="mastom";
$kode_rahasia["kevin"]="vinkev";
$kode_rahasia["buddyholly"]="b2";
if (array_key_exists(xxxxxxxxxx, xxxxxxxxxx))
if ( $kode_rahasia[$vnama] == $vpasswd) // nama dan passwd cocok
echo "berhasil";
$_SESSION['status'] = 'OK';
$_SESSION['nama'] = xxxxxxxxxx;
header("Location: xxxxxxxxxxx");
else
echo "<h1>Password Salah</h1><br/><a href='hal-
[Link]'>Login</a></p>";
$_SESSION['status'] = 'Password Salah...';
} // if nama = passwd
else
echo "<h1>Nama Tidak Terdaftar</h1><br/><a href='hal-
[Link]'>Login</a></p>";
$_SESSION['status'] = 'Nama Tidak Terdaftar...';
?>
<html>
<head><title>Login</title><head>
<body>
</body>
</html>
[Link]
<?php
session_start( );
if (isset($_SESSION['status']))
if ($_SESSION['status'] != "OK") { header("Location: xxxxxxxxxxx ");}
//jika ada status tapi tidak berisi OK
else
header("Location: [Link]"); //jika belum berhasil login
$_SESSION['status']=" ";
$warna1 = "black";
$warna2 = "white";
$simpan1=$_SESSION['nama']."-w1"; //untuk id cookie warna pertama
$simpan2=$_SESSION['nama']."-w2";
if(isset(xxxxxxxxxx))
//echo 'Cookie warna 1 terbaca: ' . $_COOKIE[$simpan1];
$warna1 = $_COOKIE[$simpan1]; //baca cookie dengan id
if(isset($_COOKIE[$simpan2]))
//echo 'Cookie warna 2 terbaca: ' . $_COOKIE[$simpan2];
$warna2 = $_COOKIE[$simpan2];
?>
<html>
<head><title>Login</title><head>
<body style="color: <?php echo $warna1; ?> ; background: <?php echo $warna2;
?>;">
<h1> Selamat Datang <?php echo xxxxxxxxxxx ?></h1>
<p style="width:450px;">Anda berhasil masuk ke halaman ini........
Silahkan memasukkan warna yang nanti akan disimpan dengan cookie
</p>
<p> </p>
<form name="form1" method="post" action="[Link]">
<table width="200" border="0" style="border: solid 1px black; padding: 5px;
border-radius: 8px; color: <?php echo xxxxxxxxxx; ?> ; background: <?php echo
xxxxxxxxxx; ?>;">
<tr>
<td colspan="2">Masukkan WARNA </td>
</tr>
<tr>
<td>Tulisan</td>
<td><input type="text" size="20" name="warna1"></td>
</tr>
<tr>
<td>Latar</td>
<td><input type="text" size="20" name="warna2"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="MASUK"></td>
</tr>
</table>
</form>
<p> </p>
<p><br>
<a href="[Link]">Logout</a></p>
</body>
</html>
[Link]
<?php
session_start( );
$vwarna1 = xxxxxxxxxx;
$vwarna2 = xxxxxxxxxx;
$vnama = $_SESSION['nama'];
//echo $vwarna1." ".$vwarna2." ".$vnama;
$simpan1 = $vnama."-w1"; //untuk id dalam setcookie
$simpan2 = $vnama."-w2";
//echo $simpan1." ".$simpan2;
setcookie(xxxxxxxxxx, $vwarna1);
setcookie(xxxxxxxxxx, $vwarna2);
xxxxxxxxxx("Location: [Link]");
?>