Menambah Akses Edit Delete pada Admin Dashboard
Kali ini akan ditambahkan previledge pada admin dashboard yang telah dibuat sebelumnya. Dengan login sebagai admin, user dapat menghapus dan juga mengedit data yang sudah ada. Berikut adalah susunan file yang dibuat untuk penambahan previldge di user admin.
| File Direktori |
Update Kolom Database
Karena akan dibuat view dan edit data, ditambahkan data yang nantinya dapat di view, edit dan delete. Berikut ini adalah susunan penambahan kolom pada database users.
![]() |
| Penambahan kolom address, id, dan email |
Update login page
Lakukan pengecekan session user. User akan diarahkan ke halaman admin jika memiliki session admin, dan akan diarahkan ke halaman guest jika tidak memiliki sesi admin. Ketika user login sebagai user, akan di pass parameter $id melalui URL yang kemudian nanti akan digunakan untuk query data sebagai user guest.
if (isset($_POST['submit'])) {
$email = $_POST['email'];
$password = md5($_POST['password']);
$sql = "SELECT * FROM users WHERE email='$email' AND password='$password'";
$result = mysqli_query($conn, $sql);
if ($result->num_rows > 0) {
$row = mysqli_fetch_assoc($result);
if($row['level'] == 'admin'){
$_SESSION['admin']=$row['username'];
echo '<script language="javascript">alert("Anda berhasil Login Admin!")
; document.location="admin/index.php";</script>';
}else{
$_SESSION['guest']=$row['username'];
echo '<script language="javascript">alert("Anda berhasil Login Guest!")
; document.location="guest/index.php?id='.$row['id'].'";</script>';
}
} else {
echo "<script>alert('Woops! Email or Password is Wrong.')</script>";
}
}
Halaman User Guest
Setelah login, user akan di redirect ke halaman landing page user guest. Halaman ini hanya berisi beberapa menu, termasuk menu home, logout, dan juga view detail data.
Menampilkan data user guest
Halaman user dengan role guest akan dicustomisasi sehingga user hanya dapat menampilkan, mengedit, dan menghapus datanya sendiri. Setelah memastikan user ada pada session guest ($_SESSION['guest']) kemudian pass parameter $id saat user diredirect ke landing page user guest. Tampilakan error message jika data $id tidak terdapat di database. Halaman ini dibuat pada view.php.
<?php
//jika sudah mendapatkan parameter GET id dari URL
if(isset($_GET['id'])){
//membuat variabel $id untuk menyimpan id dari GET id di URL
$id = $_GET['id'];
//query ke database SELECT tabel mahasiswa berdasarkan id = $id
$select = mysqli_query($conn, "SELECT * FROM users WHERE id='$id'") or die(mysqli_error($koneksi));
//jika hasil query = 0 maka muncul pesan error
if(mysqli_num_rows($select) == 0){
echo '<div class="alert alert-warning">ID tidak ada dalam database.</div>';
exit();
//jika hasil query > 0
}else{
//membuat variabel $data dan menyimpan data row dari query
$data = mysqli_fetch_assoc($select);
}
}
?>
Page view hanya akan menampilkan data read only hal ini dilakukan melalui html.
<div class="input-group">
<input type="text" name="id"value="<?php echo $data['id']; ?>"
readonly required>
</div>
Berikut adalah tampilan view user data guest. User hanya dapat mengedit, menghapus dan juga menampilkan data miliknya sendiri pada halaman ini. User yang login dengan $id=13 hanya akan dapat menampilkan data user dengan $id=13.
Mengedit data user guest
Serupa dengan menampilkan data user gues, untuk mengedit user guest digunakan sql UPDATE, dengan tambahan button submit sebagai input.
if(isset($_POST['submit'])){
$username = $_POST['username'];
$email = $_POST['email'];
$address = $_POST['address'];
$sql = mysqli_query($conn, "UPDATE users SET username='$username',
email='$email', address='$address' WHERE id='$id'")
or die(mysqli_error($conn));
if($sql){
echo '<script>alert("Berhasil menyimpan data.");
document.location="edit.php?id='.$id.'";</script>';
}else{
echo '<div class="alert alert-warning">
Gagal melakukan proses edit data.</div>';
}
}
Berikut adalah tampilan edit data user guest. Guest hanya dapat mengedit data mereka sendiri. Pada halaman ini parameter id merupakan referrer yang tidak dapat diubah. Guest hanya dapat mengubah field Username, Email, dan Address.
Ketika user login menggunakan credential admin, user akan diarahkan ke admin dashboard yang berisi list of user beserta action yang bisa dilakukan. Sebagai admin, user dapat menampilkan, mengubah, maupun menghapus data pada database melalui halaman ini.
Sama halnya dengan halaman guest, akan dilakukan pengecekan apakah user login dengan session admin. Kemudian dilakukan query ke database untuk melihat list of user. Perbedaannya adalah query tidak terbatas pada $id seperti pada guest user. Admin dapat mengambil data pada tabel users, hal ini dilakukan dengan sql code berikut ini.
$sql = mysqli_query($conn, "SELECT * FROM users ORDER BY username")
or die(mysqli_error($conn));
Berikut adalah tampilan dari halaman admin. Pada halaman ini, admin dapat melakukan beberapa action. Link view, edit, dan delete akan mengarahkan user ke halaman berikutnya.
Halaman view, akan menampilkan detail user data sesuai dengan $id yang di pas pada halaman tabel list user. Sama halnya dengan halaman view pada user guest, data yang ditampilkan akan bersifat readonly. Parameter di ambil melalui url dengan menggunakan $_GET['id']). Berikut adalah tampilan detail data user melalui admin dashboard.
![]() |
| Menampilkan data user melalui halaman admin |
Mengedit detail user melalui admin
Id user merupakan prefilled field yang tidak dapat diubah (read-only). Pembuatan halaman ini pada dasarnya sama dengan edit user data yang ada pada guest. Berikut adalah tampilan edit detail user melalui halaman admin.
Setelah dilakukan pengecekan apakah user adalah admin, data dihapus dengan melakukan query pada database berdasarkan id yang dipilih
$del = mysqli_query($conn, "DELETE FROM users WHERE id='$id'") or
die(mysqli_error($conn));










Komentar
Posting Komentar