Selasa, 12 Januari 2016

Membuat Halaman Login menggunakan PHP dan MySQL

Siapa yang belum paham halaman login? Halaman login merupakan pintu masuk kedalam sebuah sistem. Sebagai contoh ketika anda membuka halaman Facebook, Gmail, Yahoo Mail atau halaman untuk mengecek nilai IPK anda pasti anda akan membuka halaman login. Mari kita bahas lebih jauh mengenai seluk beluk halaman login dan cara membuatnya menggunakan PHP dan MySQL.
Fungsi utama dari halaman login adalah untuk melindungi sistem anda (dalam hal ini database anda). Bayangkan jika tidak ada halaman login sudah dapat dipastikan database anda akan kurang aman. Mengapa halaman login diperlukan didalam pembuatan sebuah website, tujuannya adalah untuk melindungi data anda dari tangan tangan jahil yang berkeliaran di internet.
Setelah mengetahui halaman login itu untuk apa dan kapan kita perlu menggunakannya, mari kita kaji lebih dalam mengenai alur halaman login ini, saya tidak menggunakan Flowchart melainkan hanya menggunakan deskripsi kalimat saja (semoga kalimat yang saya gunakan mudah kalian pahami).
  1. Ketika sebuah halaman admin dibuka, script akan mengecek apakah user sudah login atau belum. Dalam hal ini kita akan mengecek session user apakah ada key login atau belum. jika belum login buka halaman login, jika sudah login buka halaman dashboard.
  2. Halaman login akan memiliki 2 field yakni username dan password, yang berupa form yang nantinya akan melakukan post data, setelah itu mengecek apakah data yang dikirim ada di database kita. jika ada buka halaman dashboard dan simpan session key login, jika belum ada kembalikan ke halaman login dan munculkan pesan “username atau password salah!”.
  3. Halaman dashboard hanya akan berisikan sapaan kepada user seperti ini “Selamat datang $user” dan satu buah link untuk melakukan logout. Setiap membuka halaman dashboard akan selalu di cek apakah session key login ada atau tidak. jika tidak ada maka buka halaman login kembali.
  4. Ketika mengklik link logout maka akan dibuka sebuah halaman yang akan menghapus semua entry dari session yang anda tulis ketika anda berhasil login.
Gimana mudah bukan alur dari sebuah login dan logout, jika kalian sudah paham mengenai konsep diatas mari kita lanjutkan dan masuk kebagian yang seru yaitu ngoding.

Persiapan Database

Buatlah sebuah database dengan nama “cms” melalui PHPMyAdmin, setelah itu buat sebuah table dengan nama “user” dengan field seperti dibawah ini:

fieldname: user_id
type: int(4) auto increment set as primary key
fieldname: username
type: varchar(20)
fieldname: password
type: varchar(50)
jika berhasil maka table anda akan seperti pada gambar dibawah ini.
table
lalu lakukan insert ke table user dengan data seperti dibawah ini (pastikan ketika memasukan password pilih dropdown function pilih MD5)

username: tono
password: passwordnyaton0
username: ani
password: passwordnyaan1
Sekarang tampilan data anda pada table user seperti gambar dibawah ini.
table-data

Ngoding PHP

Untuk file php kita memerlukan beberapa file yakni

1. index.php
2. login.php
3. logout.php
4. database.php
index.php akan berlaku sebagai halaman dashboard, sedangkan halaman database.php adalah halaman yang terdapat function connect ke database yang telah kita buat sebelumnya.

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
session_start();
$username = $_SESSION['username'];
$isLoggedIn = $_SESSION['isLoggedIn'];
 
if($isLoggedIn != '1'){
    session_destroy();
    header('Location: login.php');
}
?>
 
Selamat Datang <?php echo $username; ;?>
<a href="logout.php">Logout</a>;
?>

login.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
session_start();
include 'database.php';
 
if(!empty($_POST)){
     
    $username = $_POST['username'];
    $password = md5($_POST['password']);
 
    $sql = "select * from user where username='".$username."' and password='".$password."'";
    #echo $sql."<br />";
    $query = mysql_query($sql) or die (mysql_error());
 
    // pengecekan query valid atau tidak
    if($query){
        $row = mysql_num_rows($query);
         
        // jika $row > 0 atau username dan password ditemukan
        if($row > 0){
            $_SESSION['isLoggedIn']=1;
            $_SESSION['username']=$username;
            header('Location: index.php');
        }else{
            echo "username atau password salah";
        }
    }
}
?>
 
<form action="" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="login">
</form>

logout.php

1
2
3
4
5
<?php
session_start();
session_destroy();
header('Location: login.php');
?>

database.php

1
2
3
4
5
6
7
8
9
<?php
$host = "localhost";
$user = "root";
$pass = "root";
$db_name = "cms";
 
mysql_connect($host, $user, $pass) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
?>
Setelah mengetikan script diatas silahkan buka halaman index.php di browser anda, jika anda belum login maka otomatis akan terbuka halaman login, silahkan login menggunakan user dan password yang telah diinsert ke database tadi.

Itulah contoh sederhana dari pembuatan halaman login, pasti ketika mencobanya kita tidak akan selalu langsung sukses, terkadang kita menemukan beberapa error, jangan jadikan error itu sesuatu yang membuat frustasi kita, jadikan error itu sebagai motivasi kita untuk belajar mengatasi error.

Tidak ada komentar:

Posting Komentar