Wednesday, July 22, 2009

Autentikasi Halaman

Autentikasi Halaman

Salah satu bentuk aplikasi yang sangat memerlukan cookie/session adalah halaman autentikasi. Pada prinsipnya, autentikasi digunakan untuk memproteksi halaman-halaman sensitif.

Untuk mengetahui lebih detail mengenai halaman autentikasi, ikuti langkah-langkah berikut:

1. Buat folder khusus, misalnya autentikasi_cookie.

2. Buat kode untuk halaman index.php.

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<title>Halaman Administrator</title>

<style type="text/css">

.inner {

margin: 200px auto;

padding: 20px;

width: 240px;

border: 1px solid #333;

}

</style>

</head>

<body>

<?php

ini_set('display_errors', 1);

define('_VALID', 1);

// include file eksternal

require_once('./auth.php');

init_login();

validate();

?>

<h3>Simulasi Halaman Admin</h3>

<p>

<a href="?m=logout">Logout</a>

<p>

Menu-menu admin ada di sini

</body>

</html>

3. Buat kode untuk autentikasi dan simpan dengan nama auth.php misalnya.

<?php

defined('_VALID') or die('not allowed');

function init_login() {

// Simulasi data account nama dan password

$nama = 'admin';

$pass = 'admin';

if (isset($_POST['nama']) && isset($_POST['pass'])) {

$n = trim($_POST['nama']);

$p = trim($_POST['pass']);

if ( ($n === $nama) && ($p === $pass) ) {

// Jika sama, set cookie

setcookie('nlogin', $n);

setcookie('time', time());

// redireksi

?>

<script type="text/javascript">

document.location.href="./";

</script>

<?php

} else {

echo 'Nama/Password Tidak Sesuai';

return false;

}

}

}

function validate() {

if (!isset($_COOKIE['nlogin']) || !isset($_COOKIE['time']) ) { ?>

<div class="inner">

<form action="" method="post">

<table border=0 cellpadding=5>

<tr>

<td>Nama</td>

<td><input type="text" name="nama" /></td>

</tr>

<tr>

<td>Password</td>

<td><input type="password" name="pass" /></td>

</tr>

<tr>

<td></td>

<td><input type="submit" value="LOGIN" /></td>

</tr>

</table>

</form>

</div>

<?php

exit;

}

if (isset($_GET['m']) && $_GET['m'] == 'logout') {

// Hapus cookie

if (isset($_COOKIE['nlogin'])) {

setcookie('nlogin', '', time() - 3 * 3600);

}

if (isset($_COOKIE['time'])) {

setcookie('time', '', time() - 3 * 3600);

}

// redireksi halaman

?>

<script type="text/javascript">

document.location.href="./";

</script>

<?php

}

}

?>

Jalankan/panggil halaman index atau browse direktorinya. Jika login berhasil, akan muncul halaman utama administrator.

0 comments:

Post a Comment