Yup,
seperti biasa. Kali ini saya akan memberikan contoh penggunaan database,
session, dan enkripsi
MD5 untuk menjadikannya sebagai halaman login yang cukup aman, meskipun tidak aman 100%.
MD5 untuk menjadikannya sebagai halaman login yang cukup aman, meskipun tidak aman 100%.
Dan
tentunya artikel ini hanyalah sebuah contoh, sedangkan pengembangannya
digantungkan kepada anda.
Seperti artikel yang sebelumnya, saya hanya menjelaskan sekelumit contoh yang berkaitan dengan
source code dan cara kerja source code tersebut.
Seperti artikel yang sebelumnya, saya hanya menjelaskan sekelumit contoh yang berkaitan dengan
source code dan cara kerja source code tersebut.
Secara
sederhana, cara kerjanya adalah seperti :
1.)
Ketika user memasukkan username beserta passwordnya, maka yang pertama kali
dilakukan adalah
??? mengeceknya dalam database apakah username telah terdaftar, jika telah terdaftar, dalam hal ini ada
??? dalam database maka kita memerlukan satu variable yang mengindikasikan bahwa user tersebut ada.
??? mengeceknya dalam database apakah username telah terdaftar, jika telah terdaftar, dalam hal ini ada
??? dalam database maka kita memerlukan satu variable yang mengindikasikan bahwa user tersebut ada.
2.)
Setelah itu maka sang user akan diberi sebuah session yang diambil dari
usernamenya jika
??? pengecekan password sebelumnya oleh MD5 sukses dilakukan.
??? pengecekan password sebelumnya oleh MD5 sukses dilakukan.
3.)
Jika kesemuanya tidak sesuai maka sang user akan diredirect ke halaman
login.html,
??? sehingga terlihat seperti diam di tempat.
??? sehingga terlihat seperti diam di tempat.
Untuk
memulainya kita buat terlebih dahulu databasenya :
create database userdb;
use userdb;
create table tbl_user(id int(3) primary key auto_increment,
????????????????????? username varchar(50), password varchar(50));
insert into tbl_user values(”,’admin’,’21232f297a57a5a743894a0e4a801fc3′);
use userdb;
create table tbl_user(id int(3) primary key auto_increment,
????????????????????? username varchar(50), password varchar(50));
insert into tbl_user values(”,’admin’,’21232f297a57a5a743894a0e4a801fc3′);
21232f297a57a5a743894a0e4a801fc3
–> ini adalah md5 hash dari ‘admin’
Pertama-tama
kita membuat halaman loginnya terlebih dahulu
// login.html
<html><head><title>Halaman
Login … </title></head>
<body>
<br><br><br><br><br><br><br><br><br><br><br>
<table border=1 align=center>
<form method=post action=cek.php>
<tr><td>username</td><td><input type=text name=username></tr>
<tr><td>password</td><td><input type=password name=password></tr>
<tr><td></td><td><input type=submit name=submit value=Enter></tr>
</form>
</table></body>
</html>
<body>
<br><br><br><br><br><br><br><br><br><br><br>
<table border=1 align=center>
<form method=post action=cek.php>
<tr><td>username</td><td><input type=text name=username></tr>
<tr><td>password</td><td><input type=password name=password></tr>
<tr><td></td><td><input type=submit name=submit value=Enter></tr>
</form>
</table></body>
</html>
Kemudian
halaman config.php
// config.php
<?php
$host = “localhost”;
$username = “root”;
$password = “”;
$databasename = “userdb”;
$connection = mysql_connect($host, $username, $password) or die(“Kesalahan Koneksi … !!”);
mysql_select_db($databasename, $connection) or die(“Databasenya Error”);
$username = “root”;
$password = “”;
$databasename = “userdb”;
$connection = mysql_connect($host, $username, $password) or die(“Kesalahan Koneksi … !!”);
mysql_select_db($databasename, $connection) or die(“Databasenya Error”);
?>
Setelah
itu kita buat halaman cek.php
// cek.php
<?php
session_start();
include “config.php” ;
include “config.php” ;
$username = $_POST[‘username’];
$password = $_POST[‘password’];
$passwordhash = md5($password);? // mengenkripsikannya untuk dicocokan dengan database
$password = $_POST[‘password’];
$passwordhash = md5($password);? // mengenkripsikannya untuk dicocokan dengan database
$perintahnya = “select
username, password from tbl_user where username = ‘$username’ and password =
‘$passwordhash'”;
$jalankanperintahnya = mysql_query($perintahnya);
$jalankanperintahnya = mysql_query($perintahnya);
$ada_apa_enggak =
mysql_num_rows($jalankanperintahnya);
if ($ada_apa_enggak >= 1 )
{
{
$_SESSION[‘username’] =
$username;
header(“location: main.php”);
header(“location: main.php”);
}
else
header(“location: login.html”);
?? ??? ??? ?
?>
header(“location: login.html”);
?? ??? ??? ?
?>
Kemudian
kita buat intinya main.php
// main.php
<?php
session_start();
if
(ISSET($_SESSION[‘username’]))
{
print $_SESSION[‘username’];
print “<br><a href=logout.php?maukeluar=iya>logout</a>”;
}
{
print $_SESSION[‘username’];
print “<br><a href=logout.php?maukeluar=iya>logout</a>”;
}
else
header(“location: login.html”);
header(“location: login.html”);
?>
Dan
halaman logout.php …
// logout.php
<?php
session_start();
if ($_REQUEST[‘maukeluar’] ==
“iya”)
{
?? ?if(ISSET($_SESSION[‘username’]))
?? ?{
?? ?UNSET($_SESSION[‘username’]);
?? ?}
{
?? ?if(ISSET($_SESSION[‘username’]))
?? ?{
?? ?UNSET($_SESSION[‘username’]);
?? ?}
}
header(“location: login.html”);
session_destroy();
header(“location: login.html”);
session_destroy();
?>
Yup,
cukup sudah, source codenya. Sekarang saya akan menjelaskan sedikit mengenai
code-code diatas.
Kita lewat bagian config.php, karena sebelumnya pernah saya bahas, kita masuk ke bagian, cek.php.
Kita lewat bagian config.php, karena sebelumnya pernah saya bahas, kita masuk ke bagian, cek.php.
lihat
bagian
session_start();
Penggunaan
session harus dimulai dengan menggunakan fungsi ini.
Kemudian disana tertulis kalimat seperti ini …
Kemudian disana tertulis kalimat seperti ini …
$password
= $_POST[‘password’];
$passwordhash = md5($password);
$passwordhash = md5($password);
saya
mengambil variable global $_POST[‘password’] kemudian menyisipkannya kedalam
variable baru,
yakni $password. Karena didalam database sudah dalam bentuk enkripsi MD5 maka yang perlu dilakukan
untuk mencocokkan dengan yang ada dalam database adalah mengenkripsi variable global password tadi.
Cukup dimengerti.
yakni $password. Karena didalam database sudah dalam bentuk enkripsi MD5 maka yang perlu dilakukan
untuk mencocokkan dengan yang ada dalam database adalah mengenkripsi variable global password tadi.
Cukup dimengerti.
Kemudian
argumen selanjutnya adalah query SQL
$perintahnya
= “select username, password from tbl_user where username = ‘$username’ and
password = ‘$passwordhash'”;
Saya
kira query diatas cukup familiar bagi anda. :)
Dan script-script dibawahnya cukup mudah untuk dimengerti :D.
Ya, saya cukupkan dahulu. Apabila ada yang masih bingung silahkan ditanyakan.
Dan script-script dibawahnya cukup mudah untuk dimengerti :D.
Ya, saya cukupkan dahulu. Apabila ada yang masih bingung silahkan ditanyakan.
No comments:
Post a Comment