Halaman login.php
Tidak ada kode PHP disini, hanya HTML untuk membuat form isian login.

Kode lengkap login.php
08 |
<form action= "login_proses.php" > |
11 |
<td><input type= "text" name= "user_id" maxlength= "255" size= "20" ></td> |
15 |
<td><input type= "password" name= "pass" maxlength= "255" size= "20" ></td> |
19 |
<td><input type= "submit" value= "Log in" ></td> |
Seperti yang sudah kita ketahui jika tombol Log in di tekan maka selanjutnya adalah login_proses.php
yang akan menangani validasi dan proses selanjutnya.
Kode lengkap login_proses.php
Perhatikan session_start()
harus menjadi kode eksekusi PHP yang harus dibaca pertama kali oleh mesin PHP itu sebabnya ia berada di urutan paling atas setelah tag PHP. SEDERHANANYA session_start()
merupakan penanda bahwa halaman ini akan menggunakan fitur session dari PHP dan ia harus ditulis paling dulu 
30 |
if ( empty ( $row [0] ) ) |
37 |
if ( $row [1] != $pass ) |
Kita sedikit review dari latihan PHP bagian 2 bagi yang masih sedikit bingung dengan variabel $row[0]
pada baris ke-30 dan $row[1]
pada baris ke-37.
26 |
$sql = 'select * from USER_NYA where USER_ID="' . $user_id . '"' ; |
27 |
$query = mysql_query( $sql ); |
28 |
$row = mysql_fetch_row( $query ); |
Kode mulai baris 26 sampai 28 menunjukan bahwa terjadi pemanggilan data ke tabel USER_NYA
yang memiliki USER_ID
sama dengan nilai yang dikandung dari variabel $user_id
.
Index |
0 |
1 |
Kolom |
USER_ID |
PASS |
Tabel USER_NYA
Mulai ada pencerahan mengenai $row[0]
dan $row[1]
? nilai 0 dan 1 menunjukan index dari kolom pada tabel USER_NYA
sehingga pemanggilan $row[0]
sama dengan pemanggilan nilai pada kolom USER_ID
dan $row[1]
sama dengan nilai dari kolom PASS
, begitu seterusnya.
Didalam if()
saya menggunakan beberapa operator pembanding berikut penjelasannya :
Operator |
Keterangan |
syntax |
EQUAL |
TRUE, jika $a Sama dengan $b |
$a == $b |
IDENTICAL |
TRUE, jika sama nilai dan tipe variabel-nya antara $a dan $b |
$a === $b |
AND |
TRUE, jika $a bernilai true dan $b juga true |
$a AND $b atau $a && $b |
OR |
TRUE, jika $a atau $b bernilai true |
$a OR $b atau $a || $b |
NOT |
negasi |
! |
NOT EQUAL |
TRUE, jika $a tidak sama dengan $b |
$a != $b atau $a <> $b |
NOT IDENTICAL |
TRUE, jika $a tidak identik dengan $b |
$a !== $b |
LESS THAN |
TRUE, jika $a kurang dari $b |
$a < $b |
GREATER THAN |
TRUE, jika $a lebih dari $b |
$a > $b |
LESS THAN or EQUAL TO |
TRUE, jika $a kurang dari sama dengan $b |
$a <= $b |
GREATER THAN or EQUAL TO |
TRUE, jika $a lebih dari sama dengan $b |
$a >= $b |
Operator pembanding
Jika variabel lolos validasi maka username dan password akan di daftarkan menjadi variabel global dalam session artinya variabel tersebut akan dapat diakses dari halaman manapun yang menggunakan session_start()
.
Pendaftaran dan assignment variabel SESSION ditangani oleh blok kode :
$_SESSION [ 'ID' ] = $user_id ; |
$_SESSION [ 'PASS' ] = $pass ; |
Setelah variabel terdaftar user akan di-redirect ke halaman yang hanya bisa dibuka jika loginnya berhasil, blok redirect ditangani oleh kode,
/* Redirect jika tidak ada error */ |
header( 'Location:login_lanjut.php' ); |
exit
();
//hentikan eksekusi kode di login_proses.php
Jika username dan password cocok maka halaman buku tamu akan terbuka, disini baru ada ucapan selamat datang dan link Logout, nanti bisa ditambah sendiri sesuai dengan fitur yang anda inginkan yang penting logika login semoga sudah dapet 

Tampilan setelah berhasil login
dudu merupakan username yang dipakai untuk login.
Kode lengkap login_lanjut.php
<?php
session_start(); //kuncinya ada disini, tulis diawal script sebelum menulis yang lain
?>
<html>
<head>
<title>Buku tamu</title>
</head>
<body>
<?php
/* cek udah login pa blun */
/*
session_is_registered() sebaiknya tidak digunakan (Deprecated Function)
if( !session_is_registered( 'ID' ) || !session_is_registered( 'PASS' ) )
*/
if( !isset($_SESSION['ID']) || !isset($_SESSION['PASS']) )
{
die( 'Illegal Acces' );
}
echo 'selamat datang <strong>' . $_SESSION['ID'] . '</strong><br>';
?>
<p><a href="logout.php">Logout</a></p>
</body>
</html>
Terakhir untuk mengakhiri sebuah session kita butuh fitur Logout.

Tampilan setelah logout di klik
Kode lengkap logout.php
<?php
session_start(); //kuncinya ada disini, tulis diawal script sebelum menulis yang lain
?>
<html>
<head>
<title>Logout</title>
</head>
<body>
<?php
/*
session_is_registered() sebaiknya tidak digunakan (Deprecated Function)
if( session_is_registered( 'ID' ) || session_is_registered( 'PASS' ) )
*/
if( isset($_SESSION['ID']) || isset($_SESSION['PASS']) )
{
//session_unregister( 'ID' ); Deprecated Function
//session_unregister( 'PASS' ); Deprecated Function
//unset( $ID, $PASS );
// kembalikan variabel session ke kondisi null (kosong)
$_SESSION = array();
// terakhir, hancurkan session
session_destroy();
echo 'Anda telah logout.!!!<br>';
echo 'Mau <a href="login.php">login</a> lagi??';
}
else
{
echo 'Anda belum <a href="login.php">login</a>';
}
?>
</body>
</html>
Jika sebelumnya kita memulai dengan session_start()
maka untuk mengakhiri session jangan lupa gunakan session_destroy()
.
Jika sudah logout coba tekan tombol back pada browser untuk mencoba masuk ke login_lanjut.php
apa yang terjadi ?
http://muslimpribadi.wordpress.com/2011/04/08/belajar-php-bagian-3-membuat-halaman-login-dan-logout-menggunakan-session/