Sabtu, 19 November 2011

membuat Login aplikasi multiuser






pada postingan kali ini saya akan mengangkat tema bagaimana membuat sistem login aplikasi multiuser...
postingan ini berdasarkan tutorials dari blog.rosihanari.net...

dalam suatu aplikasi login terdapat berbagai user dengan level yang berbeda...
maka rosihan ari's blog membuat tutorials ini,dan untuk menghargai usaha beliau,saya mengucapkan banyak-banyak terima kasih atas tutorialnya ini,dan saya akan men share nya dengan agan-agan semua....

Dalam suatu aplikasi bisa jadi terdapat lebih dari satu user dan dengan level yang berbeda-beda. Dengan adanya pembagian level tersebut diharapkan adanya hak akses yang berbeda. Untuk memudahkan Anda dalam membayangkan hal ini, misalkan terdapat 5 user katakanlah A, B, C, D dan E dimana user A, B dan C adalah level ‘administrator’, sedangkan D dan E user biasa. Nah… user A, B, dan C ini misalkan berhak mengakses halaman 1, 2 dan 3 dari aplikasi sedangkan D dan E hanya boleh mengakses halaman 3 saja. Dengan kata lain hak akses ke halaman-halaman tersebut ditentukan oleh level usernya.

Pemberian hak akses pada masing-masing user ini bisa dalam bentuk link menu. Ketika seorang user telah melakukan login, dan loginnya sukses maka akan muncul menu link ke halaman-halaman yang boleh diaksesnya. Sebagai gambaran misalnya pada contoh di atas, setelah user A login dan loginnya berhasil maka akan muncul menu link menuju ke halaman 1, 2 dan 3 karena si A ini levelnya Administrator. Namun untuk si D, karena levelnya user biasa, maka hanya akan muncul menu link menuju halaman 3 saja....

#File database
CREATE TABLE user (
username varchar(20),
password varchar(20),
level varchar(20),
PRIMARY KEY(username)
);


INSERT INTO `userVALUES ('a''pass1''admin');
INSERT INTO `userVALUES ('b''pass2''admin');
INSERT INTO `userVALUES ('c''pass3''user');
INSERT INTO `userVALUES ('d''pass4''user');



Wah.. passwordnya kok tidak dienkripsi? he 3x… ya itu saya sengaja
karena supaya Anda bisa mencoba script yang saya buat ini. Memang
sebaiknya passwordnya Anda enkripsi, paling tidak menggunakan md5().
Nah.. selanjutnya kita buat form loginnya.


#Form Login.html

<form method="post" action="loginsubmit.php">


  <table border="0">


    <tr>


      <td>Masukkan Username </td>


      <td><input name="username" type="text"></td>


    </tr>


    <tr>


      <td>Masukkan Password </td>


      <td><input name="pass" type="password"></td>


    </tr>


    <tr>


      <td>&nbsp;</td>


      <td><input type="submit" name="Submit" value="Submit"></td>


    </tr>


  </table>


</form>

Form login sudah dibuat, berikutnya kita buat script untuk memproses loginnya.
loginsubmit.php

<?php

// memulai session
session_start();

mysql_connect('dbhost', 'dbuser', 'dbpass');
mysql_select_db('dbname');

$username = $_POST['username'];
$password = $_POST['pass'];

// query untuk mendapatkan record dari username
$query = "SELECT * FROM user WHERE username = '$username'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);

// cek kesesuaian password
if ($password == $data['password'])
{
    echo "<h1>Login Sukses</h1>";

    // menyimpan username dan level ke dalam session
    $_SESSION['level'] = $data['level'];
    $_SESSION['username'] = $data['username'];

    // tampilkan menu
    include "menu.php";

}
else echo "<h1>Login gagal</h1>";

?>

Bila Anda perhatikan pada script di atas, maka terlihat bahwa menunya
membaca script menu.php. Di dalam script menu.php sendiri nantinya
terdapat pengecekan level usernya yang tadi tersimpan dalam session
sewaktu login sukses. Bila level usernya adalah ‘admin’ maka tampilkan
menu link menuju halaman 1, 2, dan 3. Begitu pula untuk level ‘user’.
menu.php

<?php

session_start();

if ($_SESSION['level'] == "admin")
{
    // tampilkan menu untuk admin
    echo "<a href='hal1.php'>Halaman 1</a> ";
    echo "<a href='hal2.php'>Halaman 2</a> ";
    echo "<a href='hal3.php'>Halaman 3</a> ";
    echo "<a href='logout.php'>Logout</a> ";
}
else if ($_SESSION['level'] == "user")
{
    // tampilkan menu untuk user biasa
    echo "<a href='hal3.php'>Halaman 3</a>";
    echo "<a href='logout.php'>Logout</a> ";
}

?>

Selanjutnya, kita bisa mulai membuat konten pada halaman 1, 2 dan 3.
Ingat.. sebelum menampilkan kontennya sebaiknya dicek level usernya
terlebih dahulu. Bila levelnya tidak sesuai dengan hak aksesnya, maka
jangan ragu untuk menolak :-)
Untuk halaman 1, dari kasus yang kita ambil hanya bisa diakses oleh
user berlevel ‘admin’ saja. Begitu pula untuk halaman 2. Namun untuk
halaman 3, baik level ‘admin’ maupun ‘user’ biasa boleh mengaksesnya.
hal1.php
<?php

session_start();

// cek apakah user yang mengakses halaman ini sudah melalui login atau belum
// logikanya jika user telah login dan sukses, maka SESSION level dan SESSION username ini pasti sudah ada
// jika ada user yang mencoba akses halaman ini tanpa login, maka logikanya kedua SESSION belum ada

if (isset($_SESSION['level']) && isset($_SESSION['username']))
{
   // tampilkan menu.
   // menu hanya ditampilkan bila halaman ini diakses oleh user yang telah login

   include "menu.php";

   // cek level user apakah admin atau bukan

   if ($_SESSION['level'] == "admin")
   {
       // tampilkan konten halaman 1 jika levelnya admin

       echo "<h1>Halaman 1</h1>";
       echo "<p>Selamat datang di halaman satu wahai user : ".$_SESSION['username']."</p>";
       echo "<p>Ini adalah konten halaman 1</p>";
   }
   else
   {
       // jika levelnya bukan admin, tampilkan pesan
       echo "<h1>Maaf.. Anda bukan user berlevel Administrator</h1>";
   }
}
else
{
   echo "<h1>Nah.. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>";
}

?>

Untuk halaman 2, konsepnya juga sama seperti script halaman 1 di atas, hanya yang berbeda pada kontennya tentu saja :-) Sekarang untuk halaman ke-3 di mana yang bisa mengakses adalah semua level user, scriptnya adalah:


Hal2.php

<?php

session_start();

// cek apakah user yang mengakses halaman ini sudah melalui login atau belum
// logikanya jika user telah login dan sukses, maka SESSION level dan SESSION username ini pasti sudah ada
// jika ada user yang mencoba akses halaman ini tanpa login, maka logikanya kedua SESSION belum ada

if (isset($_SESSION['level']) && isset($_SESSION['username']))
{
   // tampilkan menu.
   // menu hanya ditampilkan bila halaman ini diakses oleh user yang telah login

   include "menu.php";

   // cek level user apakah admin atau bukan

   if ($_SESSION['level'] == "admin")
   {
       // tampilkan konten halaman 1 jika levelnya admin

       echo "<h1>Halaman 2</h1>";
       echo "<p>Selamat datang di halaman dua wahai user : ".$_SESSION['username']."</p>";
       echo "<p>Ini adalah konten halaman 2</p>";
   }
   else
   {
       // jika levelnya bukan admin, tampilkan pesan
       echo "<h1>Maaf.. Anda bukan user berlevel Administrator</h1>";
   }
}
else
{
   echo "<h1>Nah.. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>";
}

?>



hal3.php



<?php

session_start();

if (isset($_SESSION['level']) && isset($_SESSION['username']))
{
   include "menu.php";

   if (($_SESSION['level'] == "admin") || ($_SESSION['level'] == "user"))
   {
       echo "<h1>Halaman 3</h1>";
       echo "<p>Selamat datang di halaman tiga wahai user : ".$_SESSION['username']."</p>";
       echo "<p>Ini adalah konten halaman 3</p>";
   }
}
else
{
   echo "<h1>Nah.. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>";
}

?>

Logout.php

<?php

session_start();
session_destroy();
echo "<h1>Anda sudah logout</h1>";
echo "<p><a href='formlogin.htm'>Login Kembali</a></p>";

?>


That’s it… mudah bukan membuatnya? Mudah-mudahan artikel di atas
menjawab semua unek-unek yang dihadapi bagi Anda yang ingin membuat
aplikasi dengan multi user.

jika anda masih bingun ini ada link download yang di sediakan oleh blog.rosihanari.net

[ DOWNLOAD SCRIPT ]

Tidak ada komentar:

Posting Komentar