Membuat Form Login dengan md5 di PHP

Untuk melengkapi dari latihan sebelumnya "Aplikasi Berita dengan PHP dan MySQL", sekarang kita akan menambahkan autentifikasi user alias membuat batasan siapa aja yang bisa masuk untuk akses.

Step-1:
Tambahkan tabel ke dalam database yang sudah ada dengan nama: logins 
CREATE TABLE Logins (
ID mediumint not null auto_increment,
username varchar(30) not null,
pass varchar(64) not null defatult 'password',
primary key(ID));
Step-2:
Membuat File untuk Register User.
Nama File : register.php
Deskripsi  : untuk menambahkan user baru.
<?
include "koneksi.php";

if (isset($_POST['submit'])){
    if($_POST['username'] | !$_POST['passwd1'] | !$_POST['passwd2']){
        die("Anda tidak melengkapi semua field");
        }
    if (!get_magic_quotes_gpc()){
        $username=addslashes($_POST['username']);
        $passwd1=addslashes($_POST['passwd1']);
        }
//memeriksa username jika terjadi kesamaan nama user       
    $usercheck=$_POST['username'];
    $sql=mysql_query("SELECT username FROM logins WHERE username='".$usercheck."'")or die(mysql_error());
    $check=mysql_num_rows($sql);
   
    if ($check !=0){
        die("<b>MAAF, username : ".$_POST['username']." sudah digunakan</b>");
        }else if($_POST['passwd1'] != $_POST['passwd2']){
        die("Password Anda tidak sama, <b>Confirm Password</b>.");
        }
    //menambahkan user baru   
        $enkrip_pass=md5($passwd1);
        $query="INSERT INTO logins(username, pass) VALUES('$username','$enkrip_pass')";
        $sql=mysql_query($query)or die(mysql_error());
?>
<h1>Registered</h1>
<p>Thank you, you have registered - you may now login.
Click <a href="login.php">here</a> for Login</p>
<?
}else{
?>
<form action="" method="post" name="Register">
<table border="0">
<tr><td>Username </td><td> <input type="text" name="username" maxlength="60" size="60"></td></tr>
<tr><td>Password </td><td> <input type="password" name="passwd1" maxlength="10" size="10"></td></tr>
<tr><td>Confirm Password </td><td> <input type="password" name="passwd2" maxlength="10" size="10"></td></tr>
<tr><th colspan="2"><input type="submit" name="submit" value="Register"></th></tr>
</table>
</form>
<?
}
?>

Step-3
Setelah user terdaftar, selanjutnya melakukan autentifikasi terhadap user dengan login form.
Nama File : Login.php
Deskripsi : melakukan autentifikasi terhadap user.
<?
session_start();
if (isset($_POST['submit'])){

include "koneksi.php";

    if(!get_magic_quotes_gpc()){
        $passwd1=addslashes($_POST['passwd1']);
        $username=addslashes($_POST['username']);
        }
//    $enkrip_pass=md5($pass);
//periksa username dan password saat login
$sql=mysql_query("SELECT * FROM logins WHERE username = '".$username."'")
    or die(mysql_error());
    $row=mysql_fetch_assoc($sql);
 if (md5($passwd1)==$row['pass']){
        //menciptakan session
        session_register("username");
        $_SESSION['username']=$row['username'];
        header("Location: ".$config_basedir);
       }else{
        header("Location: ".$config_basedir."/login.php?error=1");}
}else{
?>
<html>
<head>
       <title>Login here...</title>
       <link rel="stylesheet" href="style.css">
</head>
<body>
    <form action="" method="post" name="login">
    <table align="center">
    <tr><th colspan="2"><h2>Login</h2></th></tr>
    <tr><td>user name </td><td> <input type="text" name="username"></td></tr>
    <tr><td>password  </td><td> <input type="password" name="passwd1"></td></tr>
    <tr><td colspan="2"><input type="submit" name="submit" value="Login"></td></tr>
<?
if($_GET['error']){
    echo "<tr><td colspan='2'><hr><small>Gagal Login, Silahkan Coba lagi.</small></td></tr>";
    }
?>
    </table>
    </form>
</body>
</html>
<?
}
?>
Step-4
Setelah login tentunya harus jangan lupa logout untuk menghapus session dari user yang masuk.
Nama File : Logout.php
Deskripsi  : menghapus session / keluar dari aplikasi
<?
/*---------------------------------------------
Halaman ini merupakan halaman logout
dimana kita akan menghapus session yang ada
-----------------------------------------------*/
session_start();
    unset ($_SESSION['username']);
    session_destroy();
    require "koneksi.php";
    header("Location: ".$config_basedir);
?>
Step-5
Setelah mengetikan script di atas, sebelumnya ada perubahan sedikit pada script file sebelumnya:
  1. koneksi.php, dan
  2. index.php
koneksi.php
Tambahkan script dibawah ini:
$config_basedir = "http://127.0.0.1/berita";
Contoh script setelah ditambahkan:
<?
  $host='localhost';
  $user='root';
  $pass='password';
  $dbnm='pw2';
  $config_basedir = "http://127.0.0.1/berita"; 
  $conn=mysql_connect($host,$user,$pass);
...
index.php
Script yang ditambahkan:
<?
if(isset($_SESSION['username'])){
      echo "<a href='arsip_berita.php'>Arsip Berita</a> |";
      echo "<a href='input_berita.php'>Input Berita</a> |";
      echo "<a href='logout.php'>Log out</a>";
      echo "<div align='center'>SELAMAT DATANG ".$_SESSION['username']."</div>";     
}
?>
Script setelah ditambakan.
<?
session_start();
  include "koneksi.php";
?>
<html>
<head>
       <title>Index Berita</title>
       <link rel="stylesheet" href="style.css">
</head>
<body>
      <a href="index.php">Halaman Depan</a> |
<?
if(isset($_SESSION['username'])){
      echo "<a href='arsip_berita.php'>Arsip Berita</a> |";
      echo "<a href='input_berita.php'>Input Berita</a> |";
      echo "<a href='logout.php'>Log out</a>";
      echo "<div align='center'>SELAMAT DATANG ".$_SESSION['username']."</div>";     
}
?>
      <br><br>
<h2>Halaman Depan ~ Lima Berita Terbaru</h2>
...
Panjang juga nich script, meski ada kesulitan mudah-mudahan sukses 100%. Kalo ada kesulitan pemahaman script share aja di comment.
Kalo balesnya lama search aja di om Google.com ^_^', semoga bermanfaat.

0 comments:

Post a Comment

Alexa Rank's

Follow

Powered by Blogger.
Post Comment