Membuat Halaman Admin dan User Only dengan PHP dan MySQL. Hay, sudah lama banget ya tidak menulis artikel di blog ini, kali ini saya akan mencoba membuat tutorial sederhana yaitu bagaimana membuat Halaman yang hanya bisa di Akses oleh Administrator dan User yang sebelumnya sudah Login dahulu. Dan sudah pasti yang belum Login tidak bisa mengakses halaman tersebut.
Silahkan lihat struktur file di bawah ini:
Seperti terlihat pada gambar diatas, nantinya kita akan membuat beberapa file dan dua folder yaitu folder admin dan guest. Jika user login dengan akses admin maka akan masuk ke folder admin, begitu juga jika user login dengan akses guest maka akan masuk ke folder guest.
Jika ada user yang belum login, kemudian masuk ke folder admin atau guest dengan mengetikkan alamat www.website.com/admin atau www.website.com/guest maka secara otomatis akan redirect ke form login.
Login Form ini juga Multi User, dimana hanya dengan satu form login bisa digunakan untuk login admin dan guest, dan dengan menggunakan satu table database.
Yuukkk dimulai aja tutorialnya…
Seperti biasa, hal pertama yan harus dilakukan adalah membuat sebuah database, misal disini saya buat database dengan nama tutorialweb. Kemudian dumping script SQL di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `username` varchar(32) NOT NULL, `password` varchar(32) NOT NULL, `nama` varchar(32) NOT NULL, `email` varchar(32) NOT NULL, `level` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; INSERT INTO `user` VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', '[email protected]', 1); INSERT INTO `user` VALUES (2, 'guest', '084e0343a0486ff05530df6c705c8bb4', 'Guest', '[email protected]', 2); |
Dengan script diatas Anda sudah membuat sebuah table dengan nama user.
Selanjutnya buka editor Anda, buat sebuah file baru dan tuliskan kode HTML di bawah ini:
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 |
<html> <head> <title>Login Form | tutorialweb.net</title> </head> <body> <form action="login.php" method="post"> <center><h2>Login Form</h2></center> <table align="center"> <tr> <td>Username</td> <td>:</td> <td><input type="text" name="username" placeholder="Username" required /></td> </tr> <tr> <td>Password</td> <td>:</td> <td><input type="password" name="password" placeholder="Password" required /></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="login" value="Login" /></td> </tr> </table> </form> </body> </html> |
Jangan lupa za simpan dengan nama index.php.
Dari Kode di atas Anda akan mendapatkan sebuah From Login sederhana yang terdapat inputan Username dan Password.
Next…. Buat lagi file baru, kali ini yang akan dibuat adalah Script PHP untuk proses Login. Tapi sebelumnya buat dahulu Scipt untuk koneksi ke database. Berikut ini Script untuk koneksi ke database:
1 2 3 4 5 6 |
<?php session_start(); mysql_connect("localhost", "root", "root"); mysql_select_db("tutorialweb"); ?> |
Simpan dengan nama koneksi.php. Jangan lupa merubah detail koneksinya dengan web server Anda.
Lanjut ke Script untuk proses Login, berikut ini Scriptnya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php include('koneksi.php'); if(isset($_POST['login'])){ $user = mysql_real_escape_string(htmlentities($_POST['username'])); $pass = mysql_real_escape_string(htmlentities(md5($_POST['password']))); $sql = mysql_query("SELECT * FROM user WHERE username='$user' AND password='$pass'") or die(mysql_error()); if(mysql_num_rows($sql) == 0){ echo 'User tidak ditemukan'; }else{ $row = mysql_fetch_assoc($sql); if($row['level'] == 1){ $_SESSION['admin']=$user; echo '<script language="javascript">alert("Anda berhasil Login Admin!"); </script>'; }else{ $_SESSION['guest']=$user; echo '<script language="javascript">alert("Anda berhasil Login Guest!"); </script>'; } } } ?> |
Simpan dengan nama login.php.
Nah, dengan beberapa Script di atas untuk proses Login sudah selesai, sekarang tinggal membuat file yang ada di folder admin dan guest.
Pertama akan dibuat dulu file yang ada pada folder admin.
Buat file baru dengan nama akses.php, file ini berisi Script PHP untuk mengecek session yang telah dibuat sebelumnya pada saat proses login, jika login berhasil sebagai admin, maka sessionnya adalah admin. Berikut ini Scriptnya:
1 2 3 4 5 6 7 |
<?php session_start(); if(!isset($_SESSION['admin'])){ echo '<script language="javascript">alert("Anda harus Login!"); </script>'; } ?> |
Jangan lupa simpan dengan nama akses.php dan masukkan dalam folder admin.
Nah jika user yang belum login, dan mengakses alamat www.website.com/admin maka user akan di redirect ke form login.
Oke, sekarang kita buat file index.php, berikut ini kodenya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php include('akses.php'); ?> <html> <head> <title>Admin Area | tutorialweb.net</title> </head> <body> <div style="text-align:center"> <h2>Admin Area</h2> <p><a href="index.php">Home</a> / <a href="../logout.php">Logout</a></p> <p>Selamat datang di Admin Area, Anda Login dengan username <?php echo $_SESSION['admin']; ?></p> </div> </body> </html> |
Ingat, simpan dengan nama index.php dan masukkan dalam folder admin.
Lihat kode diatas pada baris paling atas, terdapat kode include(“akses.php” yaitu memasukkan file akses.php yang sudah dibuat tadi.
Sipp…. bagian admin sudah beres, sekarang dilanjut kebagian guest yaa..
Bagian folder hampir sama saja dengan yang ada di folder admin. Berikut ini caranya.
Sama saja buat file baru dengan nama akses.php yang gunanya sama seperti yang dijelaskan diatas, hanya saja kali ini session yang dibuat adalah session guest. Berikut ini Scriptnya:
1 2 3 4 5 6 7 |
<?php session_start(); if(!isset($_SESSION['guest'])){ echo '<script language="javascript">alert("Anda harus Login!"); </script>'; } ?> |
Simpan dengan nama akses.php dan masukkan dalam folder guest.
Selanjutnya buat file baru dan ketikkan Script berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php include('akses.php'); ?> <html> <head> <title>Guest Area | tutorialweb.net</title> </head> <body> <div style="text-align:center"> <h2>Guest Area</h2> <p><a href="index.php">Home</a> / <a href="../logout.php">Logout</a></p> <p>Selamat datang di Guest Area, Anda Login dengan username <?php echo $_SESSION['guest']; ?></p> </div> </body> </html> |
Simpan dengan nama index.php dan masukkan dalam folder guest.
Penjelasannya sama saja dengan yang ada pada bagian admin tadi.
Nah dengan begini sudah jadi deh, silahkan Anda coba sendiri.
Oh ya hampir lupa.. Script untuk Logout belum za…
Oke deh, buat file baru dan ketikkan Script di bawah ini:
1 2 3 4 5 6 |
<?php session_start(); session_destroy(); echo '<script language="javascript">alert("Anda berhasil Logout!"); </script>'; ?> |
Simpan dengan nama logout.php dan masukkan di root direktori (lihat pada gambar struktur file di atas).
File logout.php ini digunakan untuk menghancurkan session yang telah dibuat pada waktu login tadi. Dengan menghancurkan session tersebut maka user yang logout tidak akan bisa masuk lagi ke halaman admin atau guest, dan harus login kembali…
Yuppppp…. cukup dulu tutorial kali ini, semoga bisa berguna
Thanks Tutorialnya, Terus menulis ya Pak biar sy bisa terus belajar dari Websitenya and Sukses selalu
Oke gan…. makasi udah berkunjung..
Terimakasih untuk tutorialnya,
Pak apa boleh saya kembangkan scriptnya?
silahkan gan…
cara ganti passwordnya gmn ya ?
convert to encrypt :v
ganti di phpMyadmin, kolom password encrypt jadi md5
tanya gan, itu halaman utamanya index.php ya, misal kalo diganti index.html bisa ke database ngga nanti? thanks gan
aku nyoba itu udh bs masuk/login tp lsg ada peringatan keluar gt ga?
apa ada pesan error?
maksut saya, admin sudah bisa masuk, tapi langsung keluar ke index lagi,..
mngkin scrippt saaya ada yg kurang ..
setahu saya file html tidak bisa menjalan kode php di dalamnya, jadi saya rasa gak bisa.
kalo pake javascript?
permisi min ane udh coba buat tapi mengapa ga bisa yaa min padahal saya udh ngikutin semua cara diatas jadi pas mau pencet tombol login malah nongol tulisan “user tidak ditemukan”.. bantuannya dong min makasih
jika muncul pesan “user tidak ditemukan” itu artinya username yang di inputkan tidak ada dalam database!
lihat kode di file login.php pada beris ke-9.
berarti dbnya harus d isi d mysql dulu…..??
silakan dicoba
script yg saya buat, sudah berhasil login, akan tetapi tidak bisa masuk halaman selanjutnya,, muncul warning anda harus login, dan kembali ke halaman login(index),, kesalahan ya apa ya???
script sama 100%,,
coba pada file akses.php ubah baris ke 4 menjadi:
gan mau tanya , pas mau login user tidak ditemukan tp data udah masuk di database .. kenapa ya ??
koneksi ke database sudah oke?
iya nih sama, database udah ok kok, trus user tidak ditemukan.
Terima kasih tutorialnya gan, ane coba dulu
Min bisa bantu saya tidak ?
saya ada problem dengan aplikasi yang saya buat .. sepertinya sich cuma satu problemnya , tpi g tau jga sih… problemnya jika login salah password tidak muncul pesan kesalahan… thanks… kalau bisa segera saya kirim
kirim email ke [email protected]
oke sip gan, mantap
gimana caranya biar pada saat log in muncul nama dihalaman tersebut ?
“Selamat datang “NAMA” di Admin Area, Anda Login dengan username admin”
meletakkan SESSIONnya disebelah mana.. thanks.
kalau memunculkan username, tinggal menampilkan username yang disimpan di session waktu login
bukan username, tapi nama dari username tersebut ?
tinggal buat query ke database dengan WHERE username,
di simpan dimana query nya Om
Best Regards,
Adi Suwarto
di file index.php
kalo untuk pendaftaran member atau admin gimana ya Om
best regards,
Adi Suwarto
tanya om,, gimana jika kita buat hak akses adminya lebih dari satu, misal ada super admin yang berhak atas semua akses dan operator yang hanya terbatas pada menu2 tertentu.
apakah harus bikin halaman lagi untuk hak akses operatornya?
tidak harus, bisa dibedakan dari session yang dibuat pada saat login.
intinya gini om, misalkan saya login dengan hak akses “super admin” dimana saya bisa nambah,mengedit atau bahkan menghapus admin dengan level/hak akses admin biasa atau operator. sedangkan bila login dengan level admin biasa/ operator menu untuk menambah,mengedit atau menghapus itu tidak ada.
makasih sebelumnya..
menu2nya bisa dibedakan dari session pada saat login
di simpan dimana itu om? dan apabila ada tambahan user biasa gimana om? dan di menu login harus diberi menu hak akses tidak om?
best regards,
Adi Suwarto
sangat membatu mas , kalau bisa setiap line scribtnya diberi penjelasan biar tau apa saja fungsinya , maksih mas , mohon masukanya
untuk kasus yang di atas username dan password yang di gunakan untuk login admin dan guest yang mana ya?
sudah saya coba pake username dan password yang sudah di input di database tapi ko user tidak ditemukan. mohon pencerahannya pak..
input passwordnya menggunakan md5
tutorial bermanfaat.
sudah saya coba sepenuhnya tapi yang jadi masalah pada saat saya input sebagai admin, kenapa ko malah masuk di guest yaa?? gimana caranya agar bisa masuk admin??
mohon pencerahannya…
makasih
apa sudah benar data yang di database user yang anda masukkan sudah akses admin?
Selamat malam gan, maaf nih ane mau nnya
permasalahan ane udah input username dan password di submit malah ada pesan begini
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”admin’ AND password=’admin” at line 1
-_-a kenapa ya gan?
sepertinya ada kesalahan penulisan query untuk login.
gan aq ada masalah dengan kkoneksi databasnya tidak di temukan tp nama nya udah aq sesuaikan tetap tidak bisa gan….
pastikan nama database, username dan password sudah sesuai dengan server agan.
kalo xampp biasanya user root, pass kosong (tanpa password)
gan,,, kok gak bisa masuk ke menu admin,
hanya bisa masuk ke menu guest saja
login admin bisa gak?
Warning: mysql_connect(): Access denied for user ‘root’@’localhost’ (using password: YES) in C:\xampp\htdocs\pweb\koneksi.php on line 4
No database selected ini solusi nya apa yah ?
ganti koneksinya dengan koneksi ke database anda sendiri
la ini yang saya cari.. Makasih infonya
kalo misalnya pas login udah masuk guest trus url nya di ganti admin,apakah nanti guest tersebut bisa masuk admin mas?terima kasih mas. . . .
Gak bisa. Soalnya uda ada session nya. Waktu login kan dibedakan antara session admin dan guest.
alhmadulillah..tutorial web banyak membantu saya untuk belajar kembali..mengingat masa kuliah dulu dah banyak yg saya lupa…daripada buka buku2 yng dah lama, mendingan browsing disini.. sukses pak guru…ilmu nya barokah..aminn
permisi gan, numpang nanya nih
kalo misalkan di dalam webnya terdapat register user, sedangkan “level”nya biar otomatis guest/”2″ gmna ya gan? tanpa ada penginputan level di dalam form register user.
jadi input datanya lewat form register, bukan langsung dari phpmyadmin
terima makasih gan atas ilmunya
di from registernya tinggal dibuatkan select dropdown, ada level admin = 1 dan guest =2.
maaf om mau tanya, semua file dan scrip sdh saya buat 100% sama, namun saya tidak bisa login baik ke halaman admin maupun guest,
apakah username dan passwordnya om?
saya baca diskusi diatas password dicari menggunakan md5 ya. mohon bantuannya dunk, bagaimana langkah belajar md5 om?
terimakasih, saya terus memantau perkembangan skrip2 anda om
ternyata md5 ada yg menyediakan di jg di google, akhirnya sukses 100% om skrip anda terimakasih ya?
siipp… (y)
kalau pakai Xamp tidak ada error tapi pake Appserver ada error om?
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\loginbaru\proseslogin.php on line 7
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\loginbaru\proseslogin.php on line 8
User ID Belum Terdaftar!
« Back
gan kenapa ya setelah login succes malah ada pesan anda belum login terus balik ke index awal..??
apa ada error?
gan bsa mnta tolong koreksikan program yang kami.. masih tidak bisa menambahkan data gan
silahkan kirim email ke [email protected]
gan, di ane kok selalu user tidak ditemukan ya ? itu knapa ya gan ?
cek apa data di database sudah benar?
kak, kok di selesai log out ada tulisa seperti ini ya, kenapa? apakah ada yang salah,kalau iya diadaerah mana?
; alert(“Anda berhasil Logout!”; document.location=”index.php”; ‘; ?>
itu seharusnya muncul pop up dengan text “Anda berhasil Logout!” dan kembali ke halaman index.php
MAAF mas kalau ini saya bingun buatnya dimana
CREATE TABLE
user
(id
int(11) NOT NULL auto_increment,username
varchar(32) NOT NULL,password
varchar(32) NOT NULL,nama
varchar(32) NOT NULL,email
varchar(32) NOT NULL,level
int(11) NOT NULL,PRIMARY KEY (
id
)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
INSERT INTO
user
VALUES (1, ‘admin’, ‘21232f297a57a5a743894a0e4a801fc3′, ‘Administrator’, ‘[email protected]’, 1);INSERT INTO
user
VALUES (2, ‘guest’, ‘084e0343a0486ff05530df6c705c8bb4′, ‘Guest’, ‘[email protected]’, 2);masuk phpmyadmin (localhost/phpmyadmin) masukkan user & pass
buat database baru.
masuk menu SQL, paste kode di kotak yg tersedia. Klik Go.
bisa lihat ini : http://prntscr.com/5qb7kd
mohon bantuannya mas
gan mohon bantuannya saya udah ngikutin tutorial di atas tapi kok pas saya coba login id tidak di temukan padahal saya sudah buat idnya. mohon bantuannya
sudah cocok dengan databasenya?
gan kok udah berhasil login malah di suruh login lagi pencerahannya dong
mungkin ada masalah dengan session yg dibuat, saya cobaknya pakai appserv
assalamualaikum bang pino, setiap applikasi proses crud kan pasti ada. nah ini di implementasiin ke admin user.
if (admin){
semua proses crud ditampilkan
}
if else(user) {
hanya proses create dan read
}
itu gmna ya -_-a
semoga mengerti pertanyaannya
itu maksudnya jika user login admin, maka bisa melakukan proses crud. dan jika login sbg user maka hanya bisa create dan read aja.
admin dan user bisa di ambil dari sesi waktu login
gan kok user tidak ditemukan? mohon pencerahannya
apa sudah benar data di database sudah ada.
Gan semua skrip udah saya paste pada letaknya masing2, ( koneksi.php ) di TES udah oke, tapi form action ke (login.php) ada tulisan “user tidak ditemukan.” why?
dan bagaimana cara membuat alert “user tidak bisa ditemukan”? yang saya inginkan bukan tulisannya “user tidak bisa ditemukan” berada pada halaman (login.php)
trims
coba lihat database nya, apakah data user sudah ada?
untuk membuat alert bisa copas script itu
Sangat bermanfaat, o iya web saya tidak bisa masuk admin area padahal user dan password sdh benar, apa yg hrscsy lakukan? Mohon bantuannya
apa ada error yang muncul?
dan pastikan data sudah tepat di database nya.
gan keren banget hasilnya, aku mau tanya itu kalau username gak diisi kan ada alert “isi isian dulu”
syntaxnya ditaroh dimana itu gan??
di input type text ada atribut required artinya input itu wajib untuk di isi
bagus banget ni tutorialnya klw ada tambahan edit password bisa gk
bisa gan, menyusul nanti ya..
bro,.. apa fungsi akses.php nya it? klo sa aktifkan di index.php diroot direktori, hasilnya seperti ini.
anda berhasil login — pilih ok
anda harus login — pilih ok
kembali ke index.php diroot direktori
saya coba hapus
programx langsung normal, berhasil
seharusnya file akses.php itu yang membatasi hak akses login. jika anda belum login, maka tidak bisa masuk halaman admin.
jika file akses.php tidak ada, maka tanpa login bisa masuk halaman admin.