Bagaimana cara menampilkan menu berdasarkan kategory

Saya mempunyai 2 hak akses yaitu : admin dan mahasiswa

data mahasiswanya dari semester 1 sampai 8.

Jadi permasalahanya adalah ketika saya login dengan user mahasiswa semester 1, maka bagaimana caranya agar menampilkan menu semester 1 saja, atau ketika login dengan mahasiswa semester 2 maka menampilkan menu semester 2 saja. Soalnya pada setiap semester menunya berbeda beda...

Berikut MysQl nya :

image.png

Berikut coding menunya :

<aside class="main-sidebar">
        <section class="sidebar">
          <ul class="sidebar-menu">
            <li class="header">MENU</li>
            <li class="treeview">
              <a href="index.php">
                <i class="fa fa-dashboard"></i> <span>Dashboard</span>
              </a>
              	<li class="treeview">
                <li><a href="sem1.php"><i class="fa fa-pencil-square"></i> Semester 1</a></li>
                <li class="treeview">
                <li><a href="sem2.php"><i class="fa fa-pencil-square"></i> Semester 2</a></li>
                <li class="treeview">
                <li><a href="sem3.php"><i class="fa fa-pencil-square"></i> Semester 3</a></li>
                <li class="treeview">
                <li><a href="sem4.php"><i class="fa fa-pencil-square"></i> Semester 4</a></li>
                <li class="treeview">
                <li><a href="sem5.php"><i class="fa fa-pencil-square"></i> Semester 5</a></li>
                <li class="treeview">
                <li><a href="sem6.php"><i class="fa fa-pencil-square"></i> Semester 6</a></li>
                <li class="treeview">
                <li><a href="sem7.php"><i class="fa fa-pencil-square"></i> Semester 7</a></li>
                <li class="treeview">
                <li><a href="sem8.php"><i class="fa fa-pencil-square"></i> Semester 8</a></li>
              	<li class="treeview">
                <li><a href="data_terkirim.php"><i class="fa fa-table"></i> Data Terkirim</a></li>
          </ul>
      </li>
        </section>
</aside>

Berikut cek loginnya :

<?php
session_start();
# check apakah ada akse post dari halaman login?, jika tidak kembali kehalaman depan
if( !isset($_POST['username']) ) { header('location:index.php'); exit(); }
# set nilai default dari error,
$error = '';
require ('config.php');
$username = trim( $_POST['username'] );
$password = trim( $_POST['password'] );
if( strlen($username) < 2 )
{
	# jika ada error dari kolom username yang kosong
	echo"<script>window.alert('Username tidak boleh kosong');window.location=('login.php');</script>";
}else if( strlen($password) < 2 )
{
	# jika ada error dari kolom password yang kosong
	echo"<script>window.alert('Password tidak boleh kosong');window.location=('login.php');</script>";
}else{
	# Escape String, ubah semua karakter ke bentuk string
	$username = $db->escape_string($username);
	$password = $db->escape_string($password);
	# dengan md5
	//$password = md5($password);
	# SQL command untuk memilih data berdasarkan parameter $username dan $password yang
	# di inputkan
	$sql = "SELECT nama_lengkap, username, hak_akses, nidn, nip, nim, jenis_kelamin, agama, tempat_lahir, tgl_lahir, prodi, angkatan FROM tb_pengguna WHERE username='$username' AND password='$password' LIMIT 1";
	# melakukan perintah
	$query = $db->query($sql);
	# check query
	if( !$query )
	{
		die( 'Oops!! Database gagal '. $koneksi->error );
	}
	# check hasil perintah
	if( $query->num_rows == 1 )
	{
		# jika data yang dimaksud ada
		# maka ditampilkan
		$row =$query->fetch_assoc();
		# data nama disimpan di session browser
		$_SESSION['nama_user1'] = $row['nama_lengkap'];
		$_SESSION['nama_user'] = $row['username'];
		$_SESSION['akses']	   = $row['hak_akses'];
		$_SESSION['nidn'] = $row['nidn'];
		$_SESSION['nip'] = $row['nip'];
		$_SESSION['nim'] = $row['nim'];
		$_SESSION['jenis_kelamin'] = $row['jenis_kelamin'];
		$_SESSION['agama'] = $row['agama'];
		$_SESSION['tempat_lahir'] = $row['tempat_lahir'];
		$_SESSION['tgl_lahir'] = $row['tgl_lahir'];
		$_SESSION['prodi'] = $row['prodi'];
		$_SESSION['angkatan'] = $row['angkatan'];
		if( $row['hak_akses'] == 'admin')
		{
			# data hak Admin di set
			$_SESSION['saya_admin']= 'TRUE';
		}
		# menuju halaman sesuai hak akses
		header('location:'.$url.'/'.$_SESSION['akses'].'/');
		exit();
	}else{
		# jika data yang dimaksud tidak ada
		echo"<script>window.alert('Username dan password tidak ditemukan');window.location=('login.php');</script>";
	}
}
if( !empty($error) )
{
	# simpan error pada session
	$_SESSION['error'] = $error;
	header('location:'.$url.'/login.php');
	exit();
}
?>

gambar menu masih tampil semua, jika login dengan mahasiswa semester 1- 8

image.png

avatar taufikustanto
@taufikustanto

14 Kontribusi 0 Poin

Diperbarui 2 tahun yang lalu

1 Jawaban:

<div>1. Bikin session ketika login berdasarkan level/semester mahasiswanya.<br>2. Panggil session level/semesternya saat mau menampilkan menu.<br>3. Kurang lebih strukturnya seperti ini, maaf gak bisa nulis code versi php nativ nya. Tapi kaya nya gak jauh beda dgn yg sering sy praktekkan di codeigniter</div><pre>if($this-&gt;session-&gt;userdata('semester') == 1) { &lt;li&gt;&lt;a href="sem1.php"&gt;&lt;i class="fa fa-pencil-square"&gt;&lt;/i&gt; Semester 1&lt;/a&gt;&lt;/li&gt; }else if($this-&gt;session-&gt;userdata('semester') == 2) { &lt;li&gt;&lt;a href="sem1.php"&gt;&lt;i class="fa fa-pencil-square"&gt;&lt;/i&gt; Semester 2&lt;/a&gt;&lt;/li&gt; }else { &lt;li&gt;&lt;a href="sem1.php"&gt;&lt;i class="fa fa-pencil-square"&gt;&lt;/i&gt; Semester 3&lt;/a&gt;&lt;/li&gt; }</pre><div>Kurang lebih seperti itu logikanya.</div>

avatar Ahmad554
@Ahmad554

95 Kontribusi 39 Poin

Dipost 2 tahun yang lalu

Tanggapan

apakah boleh minta contoh coding session pada saat login ? Terimakasih

sudah jadi gan, Terimakasih

Login untuk ikut Jawaban