Cara Menampilkan Data Berdasarkan User yang Sedang Login
Cara menampilkan data berdasarkan user yang sedang login di php codeigniter laravel bahkan pada java menggunakan session sehingga informasi detail akun bersangkutan dapat dilihat pada halaman pengguna atau web browser. Sebagaimana kita ketahui bahwa session di php telah didefinisikan secara sistem oleh PHP itu sendiri yaitu $_SESSION dan dimulai menggunakan function session_start(). Sehingga untuk menampilkan data berdasarkan user yang sedang login baik di php, codeigniter, maupun laravel dapat diambil datanya menggunakan variabel $_SESSION dan fungsi session_start, khusus java tidak dibahas dalam artikel ini. Jadi, membuat script php untuk menampilkan data berdasarkan user login ini dibatasi hanya pada bahasa pemrograman php saja.
Tutorial cara menampilkan data berdasarkan user yang sedang login php codeigniter laravel ini kami lakukan menggunakan web server XAMPP versi 7.3 dengan apache dan database mysql, dan tentu saja dengan bahasa program php 7. Sekali lagi kami sampaikan bahwa tutorial ini hanya menampilkan data atau informasi sesuai dengan user yang sedang login pada halaman browser menggunakan php, meskipun teknik ini dapat juga dijalankan pada codeigniter atau laravel.
Berikut pembahasan tentang bagaimana cara menampilkan data berdasarkan user yang sedang login di php menggunakan variabel $_SESSION dan function session_start().
Cara Menampilkan Data Berdasarkan User yang Sedang Login
1. Membuat Folder Direktori Tutorial.
Buat nama folder terserah Anda, karena akan memproses kode php sebaiknya terletak di dalam direktori xampp htdocs atau sesuaikan dengan web server yang digunakan. Contoh nama folder yang kami buat adalah "session-login", sehingga url folder menjadi c:\xampp\htdocs\session-login\. Semua file php dan assets lain harus tersimpan di dalam folder direktori ini.
2. Membuat Rancangan Database.
Dalam tutorial cara menampilkan data berdasarkan user yang sedang login php ini kita membutuhkan database dengan minimal 2 tabel, yaitu tabel user login dan tabel pegawai untuk menampung data detail. Kedua tabel tersebut didesain memiliki relasi, pada contoh yang kami buat, di tabel pegawai terdapat atribut id_pegawai sebagai primary key, dan pada tabel user atribut "tb_pegawai" tersebut berperan sebagai foreign key.
Untuk lebih jelasnya, perhatikan gambar di bawah ini.
Dengan desain database seperti di atas, maka ketika user dengan id_pegawai tertentu login, pada halaman web dapat ditampilkan detail data pegawai dari tabel pegawai berdasarkan id_pegawai yang sama. Supaya tutorial cara menampilkan data berdasarkan user yang sedang login php ini dapat teman-teman ikuti dengan lancar, silahkan buat database dengan desain yang sama seperti di atas, atau copas saja kode sql di bawah ini.
-- phpMyAdmin SQL Dump -- version 4.9.0.1 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Generation Time: Sep 28, 2020 at 08:50 AM -- Server version: 10.4.6-MariaDB -- PHP Version: 7.3.9 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `db_tutorial` -- -- -------------------------------------------------------- -- -- Table structure for table `tb_pegawai` -- CREATE TABLE `tb_pegawai` ( `id_pegawai` int(11) NOT NULL, `nip` varchar(24) NOT NULL, `nama` varchar(64) NOT NULL, `tempat_lhr` varchar(64) NOT NULL, `tgl_lhr` date NOT NULL, `alamat` varchar(255) NOT NULL, `telp` varchar(12) NOT NULL, `unit_kerja` varchar(64) NOT NULL, `foto` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `tb_pegawai` -- INSERT INTO `tb_pegawai` (`id_pegawai`, `nip`, `nama`, `tempat_lhr`, `tgl_lhr`, `alamat`, `telp`, `unit_kerja`, `foto`) VALUES (1, '19860206', 'Satria Dermawan, S.T', 'Cilacap', '1982-09-21', 'Jl. Pangkalan Utara No. 19', '675441213', 'Kepegawian', '19860206.png'), (2, '19850630', 'Ratnasari,M.M', 'Purworejo', '1984-12-15', 'Jl. Gedangan Panjang XII No 121', '433441201', 'Administrasi', '19850630.png'), (3, '19761019', 'Ibrahim', 'Bandung', '1987-09-27', 'Jl. Raya Bogor 77B', '717441444', 'Arsiparis', '19761019.png'); -- -------------------------------------------------------- -- -- Table structure for table `tb_user` -- CREATE TABLE `tb_user` ( `id_user` varchar(32) NOT NULL, `nama_user` varchar(64) NOT NULL, `password` varchar(255) NOT NULL, `hak_akses` varchar(16) NOT NULL, `id_pegawai` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `tb_user` -- INSERT INTO `tb_user` (`id_user`, `nama_user`, `password`, `hak_akses`, `id_pegawai`) VALUES ('19761019', 'Ibrahim', '202cb962ac59075b964b07152d234b70', 'Pegawai', 3), ('19850630', 'Ratnasari,M.M', '202cb962ac59075b964b07152d234b70', 'Pegawai', 2), ('19860206', 'Satria Dermawan, S.T', '202cb962ac59075b964b07152d234b70', 'Pegawai', 1); -- -- Indexes for dumped tables -- -- -- Indexes for table `tb_pegawai` -- ALTER TABLE `tb_pegawai` ADD PRIMARY KEY (`id_pegawai`); -- -- Indexes for table `tb_user` -- ALTER TABLE `tb_user` ADD PRIMARY KEY (`id_user`), ADD UNIQUE KEY `id_pegawai` (`id_pegawai`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tb_pegawai` -- ALTER TABLE `tb_pegawai` MODIFY `id_pegawai` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- Constraints for dumped tables -- -- -- Constraints for table `tb_user` -- ALTER TABLE `tb_user` ADD CONSTRAINT `tb_user_ibfk_1` FOREIGN KEY (`id_pegawai`) REFERENCES `tb_pegawai` (`id_pegawai`); COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
3. Membuat Form Login.
Pada tutorial cara menampilkan data berdasarkan user yang sedang login php laravel codeigniter ini, otomatis kita membutuhkan sebuah desain form login. Berikut adalah kode program untuk form login tersebut, dan tampilan ini juga sekaligus berfungsi sebagai homepage atau halaman index.
Simpan sebagai index.php
<?php ob_start(); session_start(); ?> <html> <head> <title>Tutorial Cara Menampilkan Data Berdasarkan User yang Sedang Login PHP</title> </head> <body> <h2>Form Login</h2> <form action="login.php?op=in" method="POST"class="margin-bottom-0"> <table border="0" cellpadding="4"> <tr> <td width="80">Username</td> <td width="200"><input type="text" size="30" maxlength="32" name="id_user" required /></td> </tr> <tr> <td>Password</td> <td><input type="password" size="30" maxlength="255" name="password" required /></td> </tr> <tr> <td></td> <td><button type="submit">Login</button></td> </tr> </table> </form> </body> </html>
Script php di atas akan menampilkan halaman form login, jika dilihat kode programnya sangat standar sebagaimana pada umumnya yaitu menggunakan tag html form, input type, dan button. Yang perlu diperhatikan adalah pada baris ke 2 dan 3 yaitu function ob_start() dan session_start(), fungsi ini harus terdapat di setiap halaman, namun tidak boleh terduplikasi.
Jika script php di atas dijalankan, maka akan menampilkan interface form login pada web browser seperti gambar berikut ini.
4. Membuat File Action Login.
File action ini sangat berpengaruh untuk menampilkan data berdasarkan user yang sedang login di php, karena selain untuk proses login juga berperan untuk mengirimkan session dalam nilai variabel kepada halaman tertuju. File ini berisi script login yang diinstruksikan oleh form login dengan method POST, jika username dan password cocok maka akan berlanjut ke halaman selanjutnya.
Simpan sebagai login.php
<?php ob_start(); session_start(); include "koneksi.php"; $id_user = mysqli_real_escape_string($conn, $_POST['id_user']); $password = mysqli_real_escape_string($conn, md5($_POST['password'])); $op = $_GET['op']; if($op=="in"){ $sql = mysqli_query($conn, "SELECT * FROM tb_user WHERE id_user='$id_user' AND password='$password'"); if(mysqli_num_rows($sql)==1){ $qry = mysqli_fetch_array($sql); $_SESSION['id_user'] = $qry['id_user']; $_SESSION['nama_user'] = $qry['nama_user']; $_SESSION['hak_akses'] = $qry['hak_akses']; $_SESSION['id_pegawai'] = $qry['id_pegawai']; if($qry['hak_akses']=="Pegawai"){ header("location:home-pegawai.php"); } } else{ ?> <script language="JavaScript"> alert('Oops! Login Failed. Username & password tidak sesuai ...'); document.location='./'; </script> <?php } } else if($op=="out"){ unset($_SESSION['id_user']); unset($_SESSION['hak_akses']); header("location:./"); } ?>
Perhatikan baris kode program ke-16 yaitu $_SESSION['id_pegawai'] =$qry['id_pegawai'];, session ini akan dikirimkan ke halaman tertuju jika login berhasil yaitu header("location:home-pegawai.php"); pada baris ke-19. Kenapa harus id_pegawai? perhatikan kembali rancangan relasi database, meskipun sebetulnya ada trik lain yang dapat diimplementasikan selain memakai session id_pegawai. Itulah programming, trik dapat dilakukan suka-suka selama kode program dapat berjalan baik.
5. Membuat Halaman After Login.
Tutorial cara menampilkan data berdasarkan user yang sedang login php codeigniter atau laravel sehingga akan memberikan informasi detail sesuai data di database ini telah sampai pada tahap akhir. Halaman ini hanya akan terakses jika proses login berhasil, dan tentu saja akan membawa session yang dikirimkan oleh action login diantaranya adalah session username dan session id pegawai. Berikut adalah script php untuk halaman after login, jika proses login berhasil, yaitu username dan password sesuai.
Simpan sebagai home-pegawai.php
<?php ob_start(); session_start(); if(!isset($_SESSION['id_user'])){ die("<b>Oops!</b> Access Failed. <p>Sistem Logout. Anda harus melakukan Login kembali.</p> <button type='button' onclick=location.href='./'>Back</button>"); } if($_SESSION['hak_akses']!="Pegawai"){ die("<b>Oops!</b> Access Failed. <p>Anda Bukan Pegawai.</p> <button type='button' onclick=location.href='./'>Back</button>"); } include "koneksi.php"; ?> <html> <head> <title>Tutorial Cara Menampilkan Data Berdasarkan User yang Sedang Login PHP</title> </head> <body> <h2>Welcome ...!</h2> <?php $tampilPeg =mysqli_query($conn, "SELECT * FROM tb_pegawai WHERE id_pegawai='$_SESSION[id_pegawai]'"); $peg =mysqli_fetch_array($tampilPeg); ?> <table border="0" cellpadding="4"> <tr> <td width="140" rowspan="7"><img src="assets/img/<?=$peg['foto']?>" width="100" height="120"/></td> <td width="390" colspan="2"><b>Your Account</b></td> </tr> <tr> <td width="90">NIP</td> <td width="300">: <?=$peg['nip']?></td> </tr> <tr> <td>Nama</td> <td>: <?=$peg['nama']?></td> </tr> <tr> <td>TTL</td> <td>: <?=$peg['tempat_lhr']?>, <?=$peg['tgl_lhr']?></td> </tr> <tr> <td>Alamat</td> <td>: <?=$peg['alamat']?></td> </tr> <tr> <td>No. Telp</td> <td>: <?=$peg['telp']?></td> </tr> <tr> <td>Unit Kerja</td> <td>: <?=$peg['unit_kerja']?></td> </tr> <tr height="80"> <td></td> <td><a href="logout.php">Logout</a></td> <td></td> </tr> </table> </body> </html>
Perhatikan pada baris kode ke-23 yaitu $tampilPeg =mysqli_query($conn, "SELECT * FROM tb_pegawai WHERE id_pegawai='$_SESSION[id_pegawai]'");, session id pegawai. Query tersebut akan mengambil data di tabel pegawai berdasarkan id pegawai yang dikirim oleh action login, kemudian ditampilkan ke halaman pengguna oleh baris kode di bawahnya.
Jika tutorial cara menampilkan data berdasarkan user yang sedang login di php codeigniter laravel ini berhasil, maka pada halaman after login akan tampil seperti gambar di bawah ini.
ID pegawai sebagai atribut primary key tidak ditampilkan pada halaman, jika teman-teman masih ragu, id pegawai tersebut boleh saja ditampilkan di atas NIP. Sehingga benar-benar yakin bahwa detail data pegawai yang tampil adalah berdasarkan user yang sedang login.
Cara Menampilkan Data Berdasarkan User yang Sedang Login PHP
Sekian penjelasan tentang bagaimana cara menampilkan data berdasarkan user yang sedang login baik di php codeigniter atau laravel bahwkan pada java menggunakan varibel $_SESSION dan function session_start(). Untuk mendapatkan source code atau script session login dengan php Anda dapat langsung copas melalui jendela script yang tersedia atau via link di atas. Jika ada kendala atau pertanyaan silahkan hubungi kami melalui email atau melalui form komentar dan obrolan. Semoga dapat membantu.
Baca juga :
- Script PHP Menampilkan Data Berdasarkan Id
- Membuat Barcode dengan PHP dan MySQL - Tutorial
- Cara Menjumlahkan Nilai dalam Array PHP
- Cara Menampilkan IP Address dengan PHP
- Cara Membuat Laporan PDF dengan PHP dan MySQL
- Membuat Form dan Script Edit Data dengan PHP MySQL
Cara Menampilkan Data Berdasarkan User yang Sedang Login
Tags: cara menampilkan data berdasarkan user yang sedang login, menampilkan data berdasarkan user login, menampilkan data user login php, session login php, menampilkan data berdasarkan user yang sedang login php