Rosihan Ari`s Blog » Ide Membuat Sistem Login Ap...

http://blog.rosihanari.net/ide-membuat-sistem-login-...

- Rosihan Ari`s Blog - http://blog.rosihanari.net -

Ide Membuat Sistem Login Aplikasi Multi User
Posted By rosihanari On April 8, 2009 @ 2:36 am In PHP,Programming | 119 Comments

Bismillah… pada artikel kali ini saya akan mencoba memaparkan bagaimana teknik atau ide dalam membuat sistem login untuk aplikasi multi user. 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. Nah… lantas bagaimana ide dan teknik dalam membuat sistem login terkait dengan hak akses untuk multi user seperti kasus di atas? Inilah yang akan saya beberkan rahasianya dalam artikel ini. Artikel ini merupakan request dari xfreecode (member saya [1]) sekaligus salah satu dari sekian banyak trik dan teknik yang saya paparkan pada peserta kursus online PHP [2] bersama saya. Ide dan teknik untuk menyelesaikan kasus di atas sebenarnya hanyalah pada penggunaan SESSION. Setelah user berhasil login, maka dibaca level usernya. Untuk memudahkan pengecekan level user ini, maka level user disimpan pada SESSION. Nah.. level user yang tersimpan dalam SESSION inilah yang nantinya akan banyak dicek untuk keperluan pembatasan hak akses user pada halaman-halaman yang sifatnya private. OK.. OK… sudah paham deh idenya, tapi gini… bagaimana seandainya ada user yang nakal? misalkan user E dengan level user biasa kebetulan tahu link URL menuju ke halaman 1. Lantas si E ini mencoba mem bypass link menuju halaman 1 melalui URL langsung tanpa melewati menu link, padahal halaman 1 ini adalah restricted area bagi user biasa (dalam hal ini si E). Nah lo… gimana hayoo?? ya… seorang programmer harus pinter-pinter ngakali. Trus… Gimana ngakalinya? ya… sebelum bagian script yang menampilkan konten pada halaman 1 terlebih dahulu harus mengecek level usernya sebagai ‘administrator’ atau tidak, melalui pengecekan SESSION nya. Jika ya, maka tampilkan kontennya, dan jika tidak maka munculkan pesan ‘Anda mau mencoba masuk ya?? Kagak boleh atuh ‘ OK.. deh … stop berteori, sekarang let’s do it! Untuk studi kasusnya, misalkan kita punya data user sebagaimana tersaji dalam tabel berikut ini CREATE TABLE user ( username varchar(20), password varchar(20), level varchar(20), PRIMARY KEY(username) ); INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO `user` `user` `user` `user` `user` VALUES VALUES VALUES VALUES VALUES ('a', ('b', ('c', ('d', ('e', 'pass1', 'pass2', 'pass3', 'pass4', 'pass5', 'admin'); 'admin'); 'user'); 'user'); '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()

1 dari 5

01/11/10 14:00

..</td> <td><input type="submit" name="Submit" value="Submit"></td> </tr> </table> </form> Form login sudah dibuat. login.php <?php // memulai session session_start(). loginsubmit. // menyimpan username dan level ke dalam session $_SESSION['level'] = $data['level']..htm <form method="post" action="loginsubmit. $username = $_POST['username']. // tampilkan menu include "menu.rosihanari.php". } else echo "<h1>Login gagal</h1>". Nah.. // cek kesesuaian password if ($password == $data['password']) { echo "<h1>Login Sukses</h1>". $password = $_POST['pass']. maka terlihat bahwa menunya membaca script menu. selanjutnya kita buat form loginnya.php. Begitu pula untuk level ‘user’.Rosihan Ari`s Blog » Ide Membuat Sistem Login Ap. // query untuk mendapatkan record dari username $query = "SELECT * FROM user WHERE username = '$username'". Bila level usernya adalah ‘admin’ maka tampilkan menu link menuju halaman 1. $data = mysql_fetch_array($hasil). $hasil = mysql_query($query).. 'dbuser'. Di dalam script menu. mysql_select_db('dbname'). [3] http://blog..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. 2 dari 5 01/11/10 14:00 . $_SESSION['username'] = $data['username']. dan 3. berikutnya kita buat script untuk memproses loginnya. mysql_connect('dbhost'.net/ide-membuat-sistem-login-. 'dbpass'). ?> Bila Anda perhatikan pada script di atas.php sendiri nantinya terdapat pengecekan level usernya yang tadi tersimpan dalam session sewaktu login sukses. 2.

} else if ($_SESSION['level'] == "user") { // tampilkan menu untuk user biasa echo "<a href='hal3.php'>Logout</a> ". sebelum menampilkan kontennya sebaiknya dicek level usernya terlebih dahulu. echo "<a href='logout. Bila levelnya tidak sesuai dengan hak aksesnya. tampilkan pesan echo "<h1>Maaf..php <?php session_start(). echo "<p>Selamat datang di halaman satu wahai user : ".. baik level ‘admin’ maupun ‘user’ biasa boleh mengaksesnya. maka jangan ragu untuk menolak Untuk halaman 1.php'>Halaman 1</a> ". // menu hanya ditampilkan bila halaman ini diakses oleh user yang telah login include "menu. Begitu pula untuk halaman 2. // cek apakah user yang mengakses halaman ini sudah melalui login atau belum // logikanya jika user telah login dan sukses.. // cek level user apakah admin atau bukan if ($_SESSION['level'] == "admin") { // tampilkan konten halaman 1 jika levelnya admin echo "<h1>Halaman 1</h1>". http://blog. Namun untuk halaman 3. Ingat. } ?> Selanjutnya.php'>Halaman 3</a>". Anda bukan user berlevel Administrator</h1>". maka logikanya kedua SESSION belum ada if (isset($_SESSION['level']) && isset($_SESSION['username'])) { // tampilkan menu. kita bisa mulai membuat konten pada halaman 1. menu. maka SESSION level dan SESSION username ini pasti sudah ada // jika ada user yang mencoba akses halaman ini tanpa login. 2 dan 3. } } 3 dari 5 01/11/10 14:00 .php'>Halaman 3</a> ". dari kasus yang kita ambil hanya bisa diakses oleh user berlevel ‘admin’ saja....php". echo "<a href='logout.php <?php session_start(). } else { // jika levelnya bukan admin. if ($_SESSION['level'] == "admin") { // tampilkan menu untuk admin echo "<a href='hal1. echo "<a href='hal3. echo "<a href='hal2. hal1.rosihanari.$_SESSION['username'].net/ide-membuat-sistem-login-.php'>Halaman 2</a> ". echo "<p>Ini adalah konten halaman 1</p>".php'>Logout</a> ".Rosihan Ari`s Blog » Ide Membuat Sistem Login Ap."</p>".

echo "<p>Selamat datang di halaman tiga wahai user : ".. [ DOWNLOAD SCRIPT [4] ] Rating: 7. } ?> Eits… hampir lupa. [5] atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal? 4 dari 5 01/11/10 14:00 .net/ide-membuat-sistem-login-..2/10 (9 votes cast) Anda ingin mendownload beberapa tool programming 100% gratis? Silakan download di FREE PROGRAMMING TOOLS. echo "<p><a href='formlogin.php <?php session_start(). } ?> Untuk halaman 2..rosihanari. hanya yang berbeda pada kontennya tentu saja Sekarang untuk halaman ke-3 di mana yang bisa mengakses adalah semua level user.$_SESSION['username']. } } else { echo "<h1>Nah.php <?php session_start(). konsepnya juga sama seperti script halaman 1 di atas.. http://blog.. if (($_SESSION['level'] == "admin") || ($_SESSION['level'] == "user")) { echo "<h1>Halaman 3</h1>". Pada prinsipnya proses logout adalah menghapus semua session yang tadi terbentuk ketika login sukses. echo "<p>Ini adalah konten halaman 3</p>".php". echo "<h1>Anda sudah logout</h1>". session_destroy().. yang terakhir kita buat script logoutnya. ?> 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.Rosihan Ari`s Blog » Ide Membuat Sistem Login Ap. logout."</p>". if (isset($_SESSION['level']) && isset($_SESSION['username'])) { include "menu. else { echo "<h1>Nah. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>". scriptnya adalah: hal3. Anda pasti mencoba akses halaman ini tanpa login ya?</h1>".htm'>Login Kembali</a></p>".

net/ide-membuat-sistem-login-aplikasi-multi-user URLs in this post: [1] member saya: http://source.rosihanari.rosihanari.Rosihan Ari`s Blog » Ide Membuat Sistem Login Ap.net/script-php-untukmencegah-submit-form-berulang-kali [14] Tips Membuat Script PHP Pengolah Password dengan MD5: http://blog.. All rights reserved.rosihanari..rosihanari.rosihanari.net /ide-membuat-script-php-untuk-pencarian-dengan-multi-kategori [11] Membuat Fasilitas Lost Password dengan PHP: http://blog..: http://programmingtools..rosihanari.rosihanari.net /membuat-kode-verifikasi-anti-spam-pada-form-dengan-jpgraph Copyright © 2009 Rosihan Ari`s Blog. http://blog. 5 dari 5 01/11/10 14:00 .net/tips-membuatscript-php-pengolah-password-dengan-md5 [15] Membuat Kode Verifikasi Anti Spam Pada Form dengan JpGraph: http://blog.net/membuatweb-service-sederhana-studi-kasus-proses-login [8] Ide Membuat Script Upload Download File Dengan Batasan Hak Akses: http://blog.net/ide-membuat-sistem-login-.rosihanari.net/membuat-autentifikasi-user-di-php [7] Membuat Web Service Sederhana (Studi Kasus Proses Login): http://blog.ziddu.net/apa-sih-gunanya-session-di-php [10] Ide Membuat Script PHP untuk Pencarian dengan Multi Kategori: http://blog.rosihanari. Beberapa artikel terkait Membuat Autentifikasi User di PHP [6] Membuat Web Service Sederhana (Studi Kasus Proses Login) [7] Ide Membuat Script Upload Download File Dengan Batasan Hak Akses [8] Apa Sih Gunanya Session di PHP? [9] Ide Membuat Script PHP untuk Pencarian dengan Multi Kategori [10] Membuat Fasilitas Lost Password dengan PHP [11] Script PHP Untuk Update Password Administrator [12] Script PHP untuk Mencegah Submit Form Berulang Kali [13] Tips Membuat Script PHP Pengolah Password dengan MD5 [14] Membuat Kode Verifikasi Anti Spam Pada Form dengan JpGraph [15] Article printed from Rosihan Ari`s Blog: http://blog.rosihanari.net/belajar-privat-php-online/ [3] md5(): http://blog.rosihanari.rosihanari.zip.rosihanari.rosihanari.net/script-php-untukupdate-password-administrator [13] Script PHP untuk Mencegah Submit Form Berulang Kali: http://blog.net [2] kursus online PHP: http://blog.net URL to article: http://blog.rosihanari.com/download/4224438/multiuser.rosihanari.rosihanari.net /ide-membuat-script-upload-download-file-dengan-batasan-hak-akses [9] Apa Sih Gunanya Session di PHP?: http://blog.net/membuat-autentifikasi-user-di-php/ [4] DOWNLOAD SCRIPT: http://www.net/membuat-fasilitaslost-password-dengan-php [12] Script PHP Untuk Update Password Administrator: http://blog.html [5] FREE PROGRAMMING TOOLS.net [6] Membuat Autentifikasi User di PHP: http://blog.