Tuesday, July 14, 2015

Contoh Login Dengan PHP

Ini adalah langkah - langkah untuk membuat login database dengan PHP

1.Buatlah database nya dulu 

user_id INT(4) PRIMARY AUTO INCREMENT
username VARCHAR(20)
password VARCHAR(255)
email VARCHAR(100)
fullname VARCHAR(100)
agama VARCHAR(15)
no_hp BIGINT(14)
 
 
2.Buat Form Login dengan mengetikan kode berikut. Kemudian simpan pada folder yang sama, Disin folder saya dengan nama (Login) lalu nama login.php


<html>
<head>
<title>LOGIN</title>
</head>
 
<body>
<h1>LOGIN</h1>
 
<?php
//kode php ini kita gunakan untuk menampilkan pesan eror
if (!empty($_GET['error'])) {
    if ($_GET['error'] == 1) {
        echo '<h3>Username dan Password belum diisi!</h3>';
    } else if ($_GET['error'] == 2) {
        echo '<h3>Username belum diisi!</h3>';
    } else if ($_GET['error'] == 3) {
        echo '<h3>Password belum diisi!</h3>';
    } else if ($_GET['error'] == 4) {
        echo '<h3>Username dan Password tidak terdaftar!</h3>';
    }
}
?>
 
<form name="login" action="otentikasi.php" method="post">
<table border="0" cellpadding="5" cellspacing="0">
    <tr>
        <td>Username</td>
        <td>:</td>
        <td><input type="text" name="username" /></td>
    </tr>
    <tr>
        <td>Password</td>
        <td>:</td>
        <td><input type="password" name="password" /></td>
    </tr>
    <tr align="right">
        <td colspan="3"><input type="submit" name="login" value="Login" /></td>
    </tr>
</table>
</form>
</body>
</html>
 
 Untuk melihat halaman login ini, bukalah http://localhost/Login/login.php pada browser.
 
3.Setelah membuat form login, kita harus membuat sebuah file untuk memproses data login yang dimasukkan user apakah valid atau tidak. Ketikkan kode berikut dan simpan dengan nama otentikasi.php
 
<?php
include('config.php');
 
//tangkap data dari form login
$username = $_POST['username'];
$password = $_POST['password'];
 
//untuk mencegah sql injection
//kita gunakan mysql_real_escape_string
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
 
//cek data yang dikirim, apakah kosong atau tidak
if (empty($username) && empty($password)) {
    //kalau username dan password kosong
    header('location:login.php?error=1');
    break;
} else if (empty($username)) {
    //kalau username saja yang kosong
    header('location:login.php?error=2');
    break;
} else if (empty($password)) {
    //kalau password saja yang kosong
    //redirect ke halaman index
    header('location:login.php?error=3');
    break;
}
 
$q = mysql_query("select * from user where username='$username' and password='$password'");
 
if (mysql_num_rows($q) == 1) {
    //kalau username dan password sudah terdaftar di database
    header('location:index.php');
} else {
    //kalau username ataupun password tidak terdaftar di database
    header('location:login.php?error=4');
}
 
 
Kode diatas akan melakukan pengecekan terhadap inputan user yang berupa username dan password apakah username dan password terdaftar atau tidak dalam database
 
 
4.Agar setiap halaman hanya dapat diakses setelah login, kita perlu menambahkan beberapa baris kode pada file otentikasi.php seperti berikut.
 
<?php
include('config.php');
 
session_start();
 
...
 
if (mysql_num_rows($q) == 1) {
    //kalau username dan password sudah terdaftar di database
    //buat session dengan nama username dengan isi nama user yang login
    $_SESSION['username'] = $username;
 
    //redirect ke halaman index
    header('location:index.php');
} else {
 
...
 
Untuk dapat membuat otentikasi pada setiap halaman, kita menggunakan session untuk menyimpan data username dari user yang telah login. session_start() digunakan untuk membuat session baru (jika session belum dibuat) ataupun melanjutkan session (jika session sudah dibuat sebelumnya). Kemudian data username disimpan dalam session ini dengan menggunakan perintah $_session['username'] = $username yang berarti menyimpan data username kedalam session dengan nama session adalah username. Selanjutnya, data session inilah yang akan selalu kita gunakan untuk men-cek apakah user sudah login atau belum.

5.Untuk melakukan pengecekan, buat dokumen baru dan ketikkan kode berikut. Kemudian simpan dengan nama cek_login.php

<?php
session_start();
 
//jika session username belum dibuat, atau session username kosong
if (!isset($_SESSION['username']) || empty($_SESSION['username'])) {
    //redirect ke halaman login
    header('location:login.php');
}
 
6.Kemudian kita harus meng-include kan file cek_login.php ini pada file-file yang hanya boleh diakses setelah user login (index.php, edit.php, dan view.php).

<?php include('cek-login.php') ?>
 
 
Tambahkan kode berikut pada file login.php.
 
<?php
session_start();
 
if (!empty($_SESSION['username'])) {
        header('location:index.php');
}
?>
<html>
<head>
 
 
Sekarang cobalah buka halaman login.php. Jika kalian sudah login, maka kalian akan dialihkan ke halaman index.php 
 
8.Sekarang kita buat file untuk logout. Karena kita menggunakan session untuk menyimpan variabel yang digunakan dalam validasi login, maka untuk logout, kita cukup menghapus session yang digunakan. Ketikkan kode berikut dan simpan dengan nama logout.php
 
<?php
//lanjutkan session yang sudah dibuat sebelumnya
session_start();
 
//hapus session yang sudah dibuat
session_destroy();
 
//redirect ke halaman login
header('location:login.php');
 
Kemudian buat link ke file logout.php pada halaman index.php 
 
</table>
</form>
 
<a href="view.php">Lihat Data</a> || <a href="logout.php">Logout</a>
 
</body>
</html>
 
Selesiai. . .
semoga bermanfaat

   
 

0 comments:

Post a Comment