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', 'admin@admin.com', 1); INSERT INTO `user` VALUES (2, 'guest', '084e0343a0486ff05530df6c705c8bb4', 'Guest', 'guest@gmail.com', 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!"); document.location="admin/index.php";</script>'; }else{ $_SESSION['guest']=$user; echo '<script language="javascript">alert("Anda berhasil Login Guest!"); document.location="guest/index.php";</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!"); document.location="../index.php";</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!"); document.location="../index.php";</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!"); document.location="index.php";</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 🙂
berarti saya salah pada bagian koneksi.php ya gan?
betul gan. silahkan si edit sesuai koneksi agan.
Halo gan, numpang tanya
kok saya gagal terus pada tahapan login ya?
informasinya “user tidak ditemukan”
padahal detail koneksinya sudah saya ganti sesuai dengan yang saya gunakan.
ID dan passwordnya juga sudah saya sesuakian dengan :
ID : admin
pass : 21232f297a57a5a743894a0e4a801fc3
Tapi kok masih ga bisa ya gan?
Mohon pencerahannya
password yang dimasukkan waktu login jangan itu. itu adalah hasil encript md5 untuk keamanan.
pakai password admin
kak maksudnya password admin itu password yang mana?
password untuk administrator
terus kak kalo mau liat siapa yang login, itu gimana?
sementara belum ada pada tutorial ini.
kalau ingin seperti itu bisa dibuatkan table baru yang menyimpan data user nama saja yg sedang aktif login
terima kasih kak pencerahannya
kak saya baru saja email, ada yang ingin saya tanyakan
ka . password administratornya yg mana ya ?
ada di tulisan bagian bawah.
admin
yang di bagian mananya ya kak
admin
mau tanya gan,
waktu saya coba ketik username admin password admin, kenapa selalu muncul pesan anda harus login, padahal di webbrowser nya sudah ke localhost/session/admin/index.php, tapi setelah di klik ok selalu kembali ke halaman login lagi.??mohon pencerahannya
Thanks
Joni
mungkin masalah session nya
Kalau untuk menampilkan nama yang sedang login bagaimana ya <
$_SESSION[‘username’]
kak link download source kode ada nggak ?
kalau ini belum ada.
kalo buat admin,super admin,sama user yang banyak apakah nambah 1 session lagi untuk super admin atau gimana mas?
bisa dengan menambahkan data di database di level.
dan session pun ditambahkan seperti yg agan maksud
Gan, punya yang versi mysqli nya ga? kalo ada boleh lah di sent ke email 11afryan.anggriana@gmail.com 🙂 makasih
belum ada gan.
ini kenapa ya?
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\admin\koneksi.php:4 Stack trace: #0 C:\xampp\htdocs\admin\login.php(2): include() #1 {main} thrown in C:\xampp\htdocs\admin\koneksi.php on line 4
tiap kali buat kok mesti gitu
fungsi mysql_connect sudah tidak support, gunakan mysqli atau PDO
thank gan sangat membantu sekali
gan cara yang di admin di tampilin ke member gimana???
apanya gan yang ingin ditampilkan?
Fatal error: Uncaught Error: Call to undefined function mysql_real_escape_string() in C:\xampp\htdocs\web\index.php:4 Stack trace: #0 {main} thrown in C:\xampp\htdocs\web\index.php on line 4
klo itu gmna cara solvenya ya bang?
koneksi ke db sudah benar?
mas, seharusnya kan laman login.php nggk bisa diakses lagi kalau kita udah login kecuali kita teken logout. gimana caranya kalau kita udah login kita langsung dialihkan ke laman akun yang kita masukin (guest/admin )
pakai session, cek if apakah sudah ada session atau belum. kalau sudah ada redirect ke halaman admin/guest
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp_2\htdocs\action\koneksi.php:7 Stack trace: #0 C:\xampp_2\htdocs\action\login.php(68): include() #1 {main} thrown in C:\xampp_2\htdocs\action\koneksi.php on line 7
kak kok tetep seperti ini kenapa ya?
Gunakan mysqli
sangat bermanfaat mas , kunjungi juga http://rihankode.com