Home > Pemrograman Web > PHP: Login dan Logout Memanfaatkan Session

PHP: Login dan Logout Memanfaatkan Session


Tutorial super-singkat ini memperlihatkan cara membuat aplikasi kecil di PHP yang berguna menangani Login dan Logout. Jika login berhasil, tentunya dengan memeriksa kecocokan username dan password maka sistem mengaktifkan variabel Session untuk pengguna yang berhasil login tersebut dan dapat mengakses halaman lain di dalam sistem. Jika pengguna Logout maka variabel Session di hapus dan otomatis tidak ada halaman yang dapat diakses oleh pengguna tersebut, kecuali halaman login.

Tutorial ini memerlukan 2 file PHP dan 1 tabel pada database server MySQL:

>> file index.php, file yang menangani Login dan Logout.
>> main.php, file yang menjadi target ketika login dinyatakan OK
>> Database tutorial dan tabel admin yang terdiri dari 3 field yaitu id (auto_increment), username (varchar 50), dan password (varchar 32). Field password dirancang untuk menggunakan mekanisme keamanan password md5().


Tambahkan satu baris (record) ke dalam tabel admin, misalnya “admin” utuk field username dan “1234” untuk password. Jangan lupa menggunakan fungsi md5() terhadap password. Paling mudah adalah memanfaatkan tool seperti PHPMyAdmin.

index.php

File ini terdiri dari 3 bagian penting, yaitu:

>> Form Login yang mengandung 2 field: “username” dan “password” dan sebuah tombol submit “Login”.
>> Program Otorisasi Login. Bagian ini memeriksa hasil submit dari form, jika username dan password valid maka halaman ini di-redirect ke main.php. Jika tidak maka tampilkan pesan kesalahan usernama atau password.
>> Logout. Di sini dilakukan pembersikan session login dan me-refresh halaman login.

<?
// gunakan variabel session pada halaman ini. 
// fungsi ini harus diletakkan di awal halaman.
session_start();

////// Bagian Logout. Delete variabel session.
session_destroy();
$message="";

////// Bagian Login.
$Login=$_POST['Login'];

if($Login){ // jika tombol Login diklik.
   $username=$_POST['username'];
   // Encrypt password dengan fungsi md5(). 
   $md5_password=md5($_POST['password']); 

   // Connect ke database. 
   $host="localhost"; // Host name.
   $db_user=""; // MySQL username.
   $db_password=""; // MySQL password.
   $database="tutorial"; // Database.
   mysql_connect($host,$db_user,$db_password);
   mysql_select_db($database);

   // Cocokkan  username dan password.
   $result=mysql_query("select * from admin where username='$username' and password='$md5_password'");
   
   // Jika cocok.   
   if(mysql_num_rows($result)!='0'){ 
       session_register("username"); // buat session username.
       header("location:main.php"); // Re-direct ke main.php
       exit;
   } else{ // Jika tidak cocok.
      $message="--- Username atau Password SALAH---";
   }
} // akhir dari otorisasi Login.

?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Halaman Login</title>
</head>
<body>
<? echo $message; ?>
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">

<table>
   <tr>
     <td>Username : </td>
     <td><input name="username" type="text" id="username" /></td>
   </tr>
   <tr>
     <td>Password : </td>
     <td><input name="password" type="password" id="password" /></td>
   </tr>
</table>

<input name="Login" type="submit" id="Login" value="Login" />
</form>
</body>
</html> 

main.php

File ini merupakan target ketika pemeriksaan otorisasi pada file index.php dinyatakan sah (valid). Di sini dilakukan pemeriksaan nama variabel session “username”. Jika variabel ini tidak ada, dilakukan redirect ke halaman index.php.

Note: Jika kita mengharus pengguna Login sebelum mengakses suatu file PHP, maka anda dapat menyalin bagian PHP di bawah ini dan letakkan dibagian atas file PHP yang aksesnya hanya untuk pengguna yang login tersebut.

<?
// Bagian PHP ini dapat disalin ke bagian atas file yang memerlukan akses setelah login.

// Gunakan variabel session pada halaman ini
//Fungsi ini harus diletakkan pada bagian atas halaman.
session_start();

// jika variabel session "username" tidak ada.
if(!session_is_registered("username")){ 
    // Re-direct ke index.php
   header("location:index.php"); 
}
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Halaman Utama</title>
</head>
<body>
<p>Halo bos  <? echo $_SESSION['username']; ?>! Anda berhasil Login. Selamat datang di sini.</p>
<p><a href="index.php">Logout</a></p>
</body>
</html>

OK, demikian saja ya, semoga bermanfaat bagi pemula di pemrograman web dengan PHP.

  1. iauk
    4 September 2009 at 3:05 pm | #1

    gimana caranya session dengan banyak user,..jika kita mempunyai 5 macam kategori user yang berbeda,..tolong dong…saya lagi binggung,..mumet,..

  2. 8 September 2009 at 1:06 am | #2

    makasih mas tutorialnya sangat bagus. kebetulan saya lagi cari info php session
    NIcest Movies´s last blog

  3. 28 December 2009 at 3:51 am | #3

    buat iauk cari di blog.rosihanari.net/ide-membuat-sistem-login-aplikasi-multi-user lumayan buat referensi

  4. 4 September 2010 at 4:03 am | #4

    pusing juga ya buat yang pemula seperti saya hehe O.o

  5. Plankton
    23 September 2010 at 2:42 am | #5

    Request artikel cookies donk..

  6. 21 April 2011 at 8:57 pm | #6

    bkinin tutorial dri login sma logoutnya donks

  7. 7 August 2011 at 6:26 am | #7

    makasih om artikelnya

  8. 13 November 2011 at 2:26 am | #8

    maksih mas artikelnya…
    pas banget nich…

  9. rosiqin
    17 March 2012 at 5:37 am | #9

    makasih banyak…. smoga dapat amal yang setimpal…..

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.