Modul 8 Session dan Form

Document technical information

Format pdf
Size 606.1 kB
First found May 22, 2018

Document content analysis

Category Also themed
Language
not defined
Type
not defined
Concepts
no text concepts found

Persons

Organizations

Places

Transcript

Modul 8
Session dan Form
1.1 Tujuan
a. Mahasiswa dapat menggunakan session
b. Mahasiswa dapat membuat program berbasis form dan session
1.2 Materi
a. Session
b. Form
1.3 Alat dan Bahan
a. PHP dan MySQL
b. XAMPP
c. Browser
1.4 Prosedur Praktikum
a. Peserta membaca dan mempelajari materi praktikum sebelumny a
b. Instruktur menerangkan dan menjelaskan teori dan cara kerja
c. Peserta mempraktikan materi percobaan
d. Peserta membuat penyelesaian terhadap soal latihan
1.5 Teori
No Session
Pada waktu kita browsing menjelajahi website, misalnya e -mail, kita akan diminta memasukkan
username dan password. Prosedur ini hanya dilakukan sekali pada awal proses. Selanjutnya sistem
akan „mengingat‟ identitas kita, dan menampilkan informasi yang sesuai. Tanpa adanya session,
sistem akan salah dan menampilkan data rahasia ke orang yang salah.
Untuk mengetahui kegunaan session, kita akan membuat aplikasi tanpa session. Kita membutuhkan
satu halaman web dan tiga script php :
login.htm,
loginNoS ession.php,
welcomeNoSession.php dan
displayNoSession.php
login.htm
loginNoSession.php
<? // -- cek user dan password -- //
if($login == "indarzah" && $pass =="te st"){
header("Location: welcomeNoSession.php?user=indarzah");}
elseif($login == "oky" && $pa ss =="coba"){
header("Location: welcomeNoSession.php?user=oky");}
else{echo("User dan password salah");}
?>
welcomeNoSession.php
<?
echo("Welcome $user <br>");echo("<a href=\"displayNoSe ssion.php?user=$user\">");
echo("klik di sini untuk mengakse s daftar kenalananda</a>");
?>
displ ayNoSession.php
<?
$dbUser = "indarzah";
$dbPass = "te st";
$db = "latihan";
$server = "localhost";
// membuat koneksi
$koneksi = mysql_connect($server, $dbUser, $dbPa ss);
// memeriksa koneksi
if(!$koneksi ){
echo("Koneksi ke database gagal");
exit;
}
// membuka database
mysql_select_db($db);
// membuat query dan mengakses ha sil
$query = "SELECT * FROM UserData WHERE user='$user'";
$hasil = mysql_query($query);
// menampilkan hasil
echo("<table border=1>");
echo("<tr>");
echo("<td> NamaTeman</td>");
echo("<td> Keterangan</td>");
echo("</tr>");
while($row = mysql_fetch_array($ha sil)){
echo("<tr>");
echo("<td>".$row["namaTeman"]."</td>");
echo("<td>".$row["keterangan"]."</td>");
echo("</tr>");
}
echo("</table>");
?>
kode ini membutuhkan data contact yang diambil dari tabel UserData dengan definisi sebagai berikut:
CREATE TABLE userData (
user VARCHAR(50),
namaTeman VARCHAR(50),
keterangan VARCHAR(50)
);
dan sampel data sebagai berikut:
INSERT INTO userData VALUES (
'indarzah',
'Imanudin',
'Teman ceting'
);
INSERT INTO userData VALUES (
'oky',
'Iswahyudi',
'Pak Lurah kos adhyaksa'
);
INSERT INTO userData VALUES (
'oky',
'Anton Raharja',
'Rekan kerja di kantor'
);
INSERT INTO userData VALUES (
'indarzah',
'Widya Andhini',
'Gebetan lama tapi masih mesra'
);
Jalannya aplikasi :
login dengan user = oky dan password = coba
klik link untuk mendisplay output, tampilan akan munc ul sebagai berikut:
sekarang, kita akan “memalsu” link yang ada di address bar unt uk menampilkan data user indarzah.
Buka browser baru dan masukkan link berikut di address bar:
http://localhost/latihan/displayNoSession.php?user= indarzah
Kemudian tekan enter.
Dengan mudah data rahasia akan muncul. Cara menc egah hal ini terjadi adalah dengan meminta
user untuk memasukkan login dan password setiap kali ia berpindah halaman. Tetapi tentu s aja cara
ini menjengkelkan bagi user. Selain itu, mempassing variabel login dan password di setiap halaman
sangat tidak aman dan rentan peny adapan. Oleh karena itulah kita menggunakan session.
Konsep se ssion
Session bekerja seperti tempat penitipan barang di supermarket. Kita datang, menitipk an barang
bawaan, dan pet ugas akan memberikan tanda pengenal. P ada saat kita akan mengambil barang,
kita memberikan tanda pada pet ugas, dan petugas akan dapat mengambil barang yang dititipkan
tanpa tertukar dengan barang orang lain. Permasalahan yang terjadi adalah, bagaimana “tanda
pengenal” tersebut akan disimpan pada setiap halaman yang diakses user, sehingga dapat diakses
oleh sistem setiap kali user mengklik link. Ada tiga alternatif yang dapat digunakan untuk menyimpan
data session :
 Cookie
 Hidden Form
 URL Embedding
Implementasi : Cookie
Cookie adalah informasi yang disimpan pada browser user. Script menjalankan function setcookie
yang akan menulis data di harddisk user. Cookie ditulis pada browser user dengan menggunakan
perintah :
setcookie(“ se ssionId”, “1234”);
Setelah itu, variabel $sessionId akan tersedia setiap kali browser user mengakses sistem.
Cookie akan hilang dari browser user setelah melewati masa kadaluarsa yang ditentukan atau
dihapus melalui perintah:
setcookie(“ se ssionId”);
Pendekatan ini banyak mengundang kontroversi. Karena cookie dapat menghilangkan privacy user
dan berpotensi mengandung virus. Oleh karena itu, user dapat menonaktifkan cookie melalui setting
di browser.
Dengan demikian, pendekat an ini kurang handal untuk diterapkan pada aplikasi kita.
Untuk melihat dengan lebih jelas implementasi cookie, kita akan memodifikasi aplikasi di atas sebagai
berikut :
login.htm
<form method="POS T" action="loginS essionCookie.php">
loginS essionCookie.php
<?
// -- cek user dan password -- //
if($login == "indarzah" && $pass =="te st"){
setcookie("user", $login);
header("Location: welcomeSessionCookie.php");}
elseif($login == "oky" && $pa ss =="coba"){
setcookie("user", $login);
header("Location: welcomeSessionCookie.php");}
else{echo("User dan password salah");}
?>
welcomeSessionCookie.php
<?
if(!$user){
echo("Illegal Access");exit;
}
echo("Welcome $user <br>");
echo("<a href=\"displaySe ssionCookie.php\">");
echo("klik di sini untuk mengakse s daftar kenalan
anda</a>");
?>
tambahk an
baris
berikut
pada
bagian
atas
displayNoSession.php
displaySessionCookie.php
if(!$user){
echo("Illegal Access");exit;
}
Untuk mengujinya, buka browser baru dan masukkan link berikut di address bar:
http://localhost/latihan/displaySessionCookie.php
Kemudian tekan enter. Anda akan mendapatkan:
Sekarang, disable cookie dengan cara : Klik Tools – Internet Options
Klik tab Security dan klik tombol Custom Level
dan
save
as
klik disable cookie
coba lagi mengakses halaman cont act. Anda akan mendapat Illegal Access.
Implementasi : Hidden Form
Cara kedua untuk menyimpan data session adalah dengan menyimpan dat a tersebut pada hidden
input yang ada dalam form. Misalnya dengan menggunakan kode :
<input type=”hidden” name=”user” value=”$user”>
cara ini juga tidak dapat dilakukan di segala kondisi, karena ada saat -saat di mana kita tidak dapat
menggunakan form.
Implementasi : URL Embedding
Cara terakhir yang pasti berhasil adalah dengan “menempelkan” variabel session di link/URL.
Misalnya link menuju welcome.php dimodifikasi menjadi welcome.php?sessionId=1234.
Satu-satunya kerugian cara ini adalah, link URL menjadi tidak bisa di ‟bookmark‟. Selain itu, link
menjadi tidak indah dipandang mata. Tetapi secara teknis, metode inilah yang paling efektif dan
reliable.
Implementasi : Session API
Session API PHP menggabungkan teknik cookie dan teknik URL Embedding. Apabila user
mengaktifkan cookie, PHP akan menyimpan dat a session pada cookie. Tetapi apabila cookie di -
disable user, P HP akan menyimpan data session pada URL. Mekanisme ini terjadi secara otomatis
apabila PHP dicompile dengan option --enable-trans-sid.
Cara
penggunaan
PHP
Session
API
dapat
dilihat
pada
loginSessionApi. php,
welcomeSessionApi.php, dan displaySessionApi.php.
Anda dapat memodifikasi setting Internet Explorer untuk melihat bahwa metode ini dapat dijalankan
walaupun cookie di-disable. Kita juga tidak dapat mengetik langsung URL
http://localhost/latihan/displaySessionApi.php
untuk membuka halaman pribadi.
loginS essionApi.php:
<?
// -- cek user dan password -- //
if($login == "indarzah" && $pass =="te st"){
session_start();
$user
=
$login;
session_regi ster("user");
header("Location: welcomeSessionApi.php");}
elseif($login == "oky" && $pa ss =="coba"){
session_start();
$user = $login;
session_regi ster("user");
header("Location: welcomeSessionApi.php");}
else{
echo("User dan password salah");}
?>
welcomeSessionApi.php
<?
se ssi on_start();
if(!se ssi on_i s_regi stered("user")){
echo("Illegal Access");
exit;}echo("Welcome $user <br>");
echo("<a href=\"displaySessionApi.php\">");
echo("klik di sini untuk mengakse s daftar kenalananda</a>");
?>
displaySessionApi.php
<?
se ssi on_start();
if(!se ssi on_i s_regi stered("user")){
echo("Illegal Access");
exit;
}
$dbUser = "indarzah";
$dbPass = "te st";
$db = "latihan";
$server = "localhost";
// membuat koneksi
$koneksi = mysql_connect($server, $dbUser, $dbPa ss);
// memeriksa koneksi
if(!$koneksi ){
echo("Koneksi ke database gagal");
exit;
}
// membuka database
mysql_select_db($db);
// membuat query dan mengakses ha sil
$query = "SELECT * FROM UserData WHERE user='$user'";
$hasil = mysql_query($query);
echo($se ssi onId);
// menampilkan hasil
echo("<table border=1>");
echo("<tr>");
echo("<td> NamaTeman</td>");
echo("<td> Keterangan</td>");
echo("</tr>");
while($row = mysql_fetch_array($ha sil)){
echo("<tr>");
echo("<td>".$row["namaTeman"]."</td>");
echo("<td>".$row["keterangan"]."</td>");
echo("</tr>");
}
echo("</table>");
?>
1.6 Latihan
1. Coba jalankan script berikut ini :
Latihan 1
Check Box
<html>
<body>
<form>
I have a bike:
<input type="checkbox" name="Bike">
<br>
I have a car:
<input type="checkbox" name="Car">
</form>
</body>
</html>
Latihan 2
Radio Button
<html>
<body>
<form>
Male:
<input type="radio" checked="checked"
name="Sex" value="male">
<br>
Female:
<input type="radio"
name="Sex" value="female">
</form>
<p>
When a user clicks on a radio-button, the button becomes checked, and all other buttons with
the same name bec ome unchecked
</p>
</body>
</html>
Latihan 3
Simple drop down box
<html>
<body>
<form>
<select name="cars">
<option value=" volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
</form>
</body>
</html>
Latihan 4
Another drop down box
<html>
<body>
<form>
<select name="cars">
<option value=" volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat" selected="selected">Fiat</option>
<option value="audi">Audi</option>
</select>
</form>
</body>
</html>
Latihan 5
Textarea
<html>
<body>
<textarea rows=”10” cols=”30)
ini text area loh
</textarea>
</body>
</html>
Latihan 6
Button
<html>
<body>
<form>
<input type="button" value="Hello world!">
</form>
</body>
</html>
Latihan 7
Field set
<html>
<body>
<fieldset>
<legend>
Healt h information:
</legend>
<form>
Height <input type="text" size="3">
Weight <input type="text" size="3">
</form>
</fieldset>
<p>
If there is no border around the input form, your browser is too old.
</p>
</body>
</html>
Latihan 8
Form with input fields and a submit button
<html>
<body>
<form name="input" action="html_form_action.asp" method="get">
Type your first name:
<input type="text" name="FirstName" value="Mickey" size="20">
<br> Type your last name:
<input type="text" name="LastName" value="Mouse" size="20">
<br>
<input type="submit" value="Submit">
</form>
<p>
If you click the "Submit" button, you will send your input to a new page called
html_form_action.as p.
</p>
</body>
</html>
Latihan 9
Form with checkboxes
<html>
<body>
<form name="input" action="html_form_action.asp" method="get">
I have a bike:
<input type="checkbox" name="Bike" checked="checked"><br>
I have a car:
<input type="checkbox" name="Car">
<br>
<input type="submit" value="Submit">
</form>
<p>
If you click the "Submit" button, you send your input to a new page called
html_form_action.as p.
</p>
</body>
</html>
Latihan 10
Form with radio buttons
<html>
<body>
<form name="input" action="html_form_action.asp" method="get">
Male:
<input type="radio" name="Sex" value="Male" checked="checked">
<br>
Female:
<input type="radio" name="Sex" value="Female">
<br>
<input type ="submit" value ="Submit">
</form>
<p>
If you click the "Submit" button, you will send your input to a new page called
html_form_action.as p.
</p>
</body>
</html>
Latihan 11
Send e-mail from a form
<html>
<body>
<form action="MAILTO:[email protected] unair.ac.id" method="post" enctype="text/plain">
<h3> This form sends an e-mail to Unair.</h3>
Name:<br>
<input type="text" name="name"
value="yourname" size="20">
<br>
Mail:<br>
<input type="text" name="mail"
value="yourmail" size="20">
<br>
Comment:<br>
<input type="text" name="comment"
value="yourcomment" size="40">
<br><br>
<input type="submit" value="Send">
<input type="reset" value="Reset">
</form>
</body>
</html>
2.
Jalankan file berikut ini :
a. Koneksi :
<?php
$komput er = "localhost";
$user = "root";
$pass = "";
$database = "terserah";
$connect = mysql_connect ($komputer, $user, $pass);
if ($connect) {
$buka = mysql_select_db ($database);
if (!$buka) {
die ("Koneksi ke databas e gagal");
} else {
echo "Koneksi berhasil";
}
} else {
die ("Server tidak terhubung");
}
?>
b. User:
<?php
include "koneksi.php";
//mengambil data dari database
$query = "SELECT * FROM anggota ORDER BY username";
$sql = mysql_query ($query);
echo "<table border= '1'>";
echo "<tr>";
echo "<th>No</th>";
echo "<th>Username</th>";
echo "<th>Nama</th>";
echo "<th>Email</th>";
echo "<th>Password</th>";
echo "<th>Alamat</th>";
echo "<th>Action</th>";
echo "</tr>";
$no = 0;
while ($hasil = mysql_fetch_array ($sql)) {
$no++;
$user = $hasil['username'];
$nama = $hasil['nama'];
$email = $hasil['email'];
$password = $hasil['password'];
$alamat = $hasil['alamat'];
echo "<tr>";
echo "<td>$no</td>";
echo "<td>$user</td>";
echo "<td>$nama</td>";
echo "<td>$email</td>";
echo "<td>$password</td>";
echo "<td>$alamat</td>";
echo "<td>Detail | Edit | Delete</td>";
echo "</tr>";
}
echo "</table>";
?>
c. Register:
<?php
//koneksi
include_once "koneksi.php";
//ambil data yang ada di form
if (isset($_POS T['Daftar'])) {
$user = $_P OS T['username'];
$nama = $_POS T['nama'];
$email = $_P OS T['email'];
$password = $_POS T['password'];
$alamat = $_POS T['alamat '];
//insert ke database
$query = "INSERT INTO anggota
VALUES('$user','$nama','$email','$password','$alamat')";
$sql = mysql_query ($query);
if ($sql) {
echo "<h1>Data berhasil diinput</h1>";
} else {
echo "Dat a gagal diinput";
}
}
?>
<div id="content">
<h2>Halaman Kategori</h2>
<form action="" method="post">
Username : <input type="text" name="username"/> <br/>
Nama Lengkap : <input type="text" name="nama"/> <br/>
Email : <input type="text" name="email"/> <br/>
Password : <input type="password" name="password"/> <br/>
Alamat : <textarea cols="50" rows="4" name="alamat"></textarea> <br/>
<input type="submit" name="Daftar" value=" Daftar" />
</form>
</div>
File database:
create database terserah;
use terserah;
DROP TABLE IF EXISTS `anggota`;
CREATE TABLE IF NOT EXISTS `anggota` (
`username` varchar(20) collate latin1_general_ci NOT NULL,
`nama` varchar(40) collate latin1_general_ci NOT NULL,
`email` varchar(50) collate latin1_general_ci NOT NULL,
`password` varchar(60) collate latin1_general_ci NOT NULL,
`alamat` text collate latin1_general_ci NOT NULL,
PRIMARY KEY (`username`)
)

Similar documents

×

Report this document