Anda di halaman 1dari 5

Cara Lengkap Membuat Autentifikasi User Di PHP + MD5

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%.

Source : http://desktop-labsore.blogspot.com/2011/05/membuat-form-login-dengan-md5-di-
php.html