Sabtu, 01 Januari 2011

Cara Membuat Halaman Login Pada Web

Setelah borwsing berjam-jam akhirnya saya menenukan cara membuat menu login di websai.. saya cuma copi paste saja. semoga bermanfaat.

Kali ini saya akan memberikan contoh penggunaan database, session, dan enkripsi
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.
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.
2.) Setelah itu maka sang user akan diberi sebuah session yang diambil dari usernamenya jika
    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.
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');
21232f297a57a5a743894a0e4a801fc3 --> ini adalah md5 hash dari 'admin'
Pertama-tama kita membuat halaman loginnya terlebih dahulu
// login.html
Halaman Login ...



php>
username
password

Kemudian halaman config.php
// config.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");
?>
Setelah itu kita buat halaman cek.php
// cek.php
session_start();
include "config.php" ;
$username = $_POST['username'];
$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);
$ada_apa_enggak = mysql_num_rows($jalankanperintahnya);
if ($ada_apa_enggak >= 1 )
{
$_SESSION['username'] = $username;
header("location: main.php");
}
else
header("location: login.html");
            
?>
Kemudian kita buat intinya main.php
// main.php
session_start();
if (ISSET($_SESSION['username']))
{
print $_SESSION['username'];
print "
logout";

}
else
header("location: login.html");
?>
Dan halaman logout.php ...
// logout.php
session_start();
if ($_REQUEST['maukeluar'] == "iya")
{
    if(ISSET($_SESSION['username']))
    {
    UNSET($_SESSION['username']);
    }
}
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.
lihat bagian
session_start();
Penggunaan session harus dimulai dengan menggunakan fungsi ini.
Kemudian disana tertulis kalimat seperti ini ...
$password = $_POST['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.
Kemudian argumen selanjutnya adalah query SQL
$perintahnya = "select username, password from tbl_user where username = '$username' and password = '$passwordhash'";


Sumber: ilmuwebsite.com

aNdHi

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

2 komentar:

  1. gan mohon pencerahanya,saya newbie jg nih,lg nyoba bikin web menggunakan HTML,kalo pakek scipt ini bisa nggak?

    BalasHapus

 

Copyright @ 2013 aNdHi Rao-Rao.