Membuat Halaman Login-Logout

Membuat Halaman Login-Logout
Kali ini kita akan membuat halaman login sederhana dengan PHP dan MySQL.

Pertama-tama buatlah databasenya terlebih dahulu dengan nama `db_tutorial`.
Lalu buatlah sebuah tabel dengan nama `tb_user`.

CREATE TABLE `tb_user` (
 `id_user` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
 `username` VARCHAR( 50 ) NOT NULL ,
 `password` TEXT NOT NULL
 ) ENGINE = MYISAM ;

Lalu buat sebuah record di `tb_user`

INSERT INTO `db_tutorial`.`tb_user` (`id_user` ,`username` ,`password` )
 VALUES (NULL , 'admin', '21232f297a57a5a743894a0e4a801fc3');

‘21232f297a57a5a743894a0e4a801fc3’  adalah hasil enkripsi md5 dari kata ’admin’.

Lalu buatlah sebuah file PHP dengan nama index.php, lalu ketikan script berikut :

<html>
 <head>
 <title>Halaman Login</title>
 </head>
 <body>
 <form name="frm_login" id="frm_login" method="post" action="login.php">
 <table align="center">
 <tr><td colspan="2">Login</td></tr>
 <tr>
 <td>Username</td>
 <td><input type="text" name="username" size="30" maxlength="50"></td>
 </tr>
 <tr>
 <td>Password</td>
 <td><input type="password" name="password" size="30"></td>
 </tr>
 <tr>
 <td></td>
 <td><input type="submit" name="submit" value="Login"></td>
 </tr>
 </table>
 </form>
 </body>
 </html>

Lalu buatlah sebuah file PHP dengan nama login.php, lalu ketikan script berikut :

<?php
 //memulai session
 session_start();

//script koneksi ke server
 $server = "localhost";    //server anda
 $user = "root";        //username server anda
 $pass = "";        //password server anda
 $database = "db_tutorial";    //database anda
 mysql_connect($server,$user,$pass)or die("Koneksi Gagal");
 mysql_select_db($database)or die("Database tidak ditemukan");

if(isset($_POST['submit'])){
 $username = trim(mysql_real_escape_string($_POST['username']));
 $password = trim(md5($_POST['password']));
 if(!empty($username)  &&  !empty($password)){
 $sql = "SELECT*FROM `$database`.`tb_user` WHERE `tb_user`.`username`='$username' AND `tb_user`.`password`='$password'";
 $query = mysql_query($sql);
 $result = mysql_fetch_array($query);
 $count = mysql_num_rows($query);
 if($count>0){
 session_register("login_username");
 $_SESSION['login_username']=$result['username'];
 echo"<script>alert('Selamat Datang, $_SESSION[login_username]');</script>";
 echo"<script>document.location.href='sukses.php';</script>";
 }else{
 echo"<script>alert('Maaf, Data tidak ditemukan');</script>";
 echo"<script>document.location.href='index.php';</script>";
 }
 }else{
 echo"<script>alert('Maaf, Masih ada data yang kosong');</script>";
 echo"<script>document.location.href='index.php';</script>";
 }
 }
 ?>

Lalu buatlah sebuah file PHP dengan nama sukses.php, lalu ketikan script berikut :

<?php
 session_start();
 if(empty($_SESSION['login_username'])){
 echo"<script>document.location.href='index.php';</script>";
 }
 ?>
<html>
 <head>
 <title>Login Sukses</title>
 </head>
 <body>
 <h1>LOGIN SUKSES</h1><br />
 <a href="?aksi=logout">Logout</a>

<?php
 if($_GET['aksi']=="logout"){
 session_unregister("login_username");
 session_destroy();
 echo"<script>document.location.href='index.php';</script>";
 }
 ?>

</body>
 </html>

Penjelasan
Nah, mari kita mulai penjelasan mengenai script-script diatas.

login.php

session_start();

Fungsi script session_start() wajib dalam membuat sistem login.

$username =  trim(mysql_real_escape_string($_POST['username']));

Fungsi script trim() adalah untuk menghilangkan spasi di awal dan akhir kalimat untuk mencegah seseorang mengosongkan kolom isian username.
Penggunaan script mysql_real_escape_string bertujuan untuk menambah keamanan dalam login dan menghindari adanya serangan SQL Injection dengan mengganti karakter seperti ( “ ) yang dapat digunakan untuk SQL Injection akan ditambah backlash ( \ ) di depannya menjadi ( \” ).

$password = trim(md5($_POST['password']));

 

Fungsi script md5() adalah untuk mengenkripsi password kedalam bentuk md5 sehingga lebih aman. Contohnya seperti kata admin dienkripsi md5 menjadi 21232f297a57a5a743894a0e4a801fc3.

$count = mysql_num_rows($query)
 If($count>0){
 session_register("login_username");
 $_SESSION['login_username']=$result['username'];
 echo"<script>alert('Selamat Datang, $_SESSION[login_username]');</script>";
 echo"<script>document.location.href='sukses.php';</script>";
 }

 

Fungsi script mysql_num_rows() adalah untuk menghitung jumlah baris (rows) yang dihasilkan oleh $query.

Bila jumlah $count lebih besar dari 0 yang berarti ada record  yang sesuai dengan $query atau ada data dengan username dan password yang cocok maka session “login_username” akan di-register menggunakan script session_register() dengan username dari hasil $query dan user yang telah berhasil login akan di-redirect ke sukses.php.

sukses.php

<a href="?aksi=logout">Logout</a>

<?php
 if($_GET['aksi']=="logout"){
 session_unregister("login_username");
 session_destroy();
 echo"<script>document.location.href='index.php';</script>";
 }
 ?>

 

Bila link Logout diklik maka alamat yang ditunjukan oleh address bar di browser anda akan menjadi sukses.php?aksi=logout dan script php yang mengecek jika variabel ‘aksi’ yang diambil dari address bar browser anda menggunakan $_GET['']  nilai-nya “logout” akan melakukan un-register kepada session “login_username” menggunakan script session_unregister(“”) dan menghancurkan semua session menggunakan script session_destroy(); dan user pun dikembalikan ke halaman login.

Membuat Sistem Login-Logout cukup mudah bukan?
Saya percaya anda bisa mengembangkan sistem ini menjadi lebih kompleks daripada yang dibahas disini, selamat belajar!

Falmesino Abdul Hamid
AlmezuSevenfold@gmail.com

About these ads

Komeng dulu dong biar rame :)

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s