Buat Table dan isinya, disini saya menggunakan database dengan nama sekolah
berikut query membuat table
CREATE TABLE login (
username varchar(50) NOT NULL primary key,
password varchar(50) NOT NULL,
level varchar(10) NOT NULL
);
berikut query menambahkan data pada table login
INSERT INTO login (username, password, level) VALUES
('admin', 'admin', 'admin'),
('user', 'user', 'user');
level digunakan untuk multi user, jadi nantinya halaman admin dan user akan beda
form_login.html
<form method="post" action="login.php">
<input type="text" name="username" placeholder="Username"/>
<br/>
<input type="text" name="password" placeholder="Password"/>
<br/>
<input type="submit" value="Log In"/>
</form>
tampilan login
Setelah itu buat file koneksinya, berikut codenya
koneksi.php
<?php
$host = "localhost";
$username = "root";
$password = "";
$db_name = "sekolah";
$mysqli = new mysqli($host, $username, $password, $db_name);
if(mysqli_connect_errno()) {
echo "Error: Could not connect to database.";
exit;
}
?>
lalu buat proses log in nya
login.php
<?php
session_start();
include 'koneksi.php';
$username = $_POST['username'];
$password = $_POST['password'];
$query = "select * from login where username='$username' and password='$password'";
//untuk menjalankan perinta sql
$result = $mysqli->query($query);
//untuk mendapatkan jumlah baris dari table
$num_results = $result->num_rows;
//jika login berhasil
if( $num_results > 0){
$row = $result->fetch_assoc();
extract($row);
$_SESSION['username'] = $username;
$_SESSION['level'] = $level;
header("location:admin.php");
}else{
echo "Log In Gagal";
}
//menutup koneksi ke database
$result->free();
$mysqli->close();
?>
yang terakhir buat file admin.php, file ini hanya bisa diakses ketika anda telah log in saja, entah itu sebagai user atau admin, dan secara otomatis akan menampilkan halaman admin jika login sebagai admin dan sebaliknya, jika belum login akan otomatis diarahkan ke halaman login.
admin.php
<?php
session_start();
//checking apakah session username telah terdaftar atau belum
if(isset($_SESSION['username'])){
//cek jika username ada, apakah level dari username tersebut
if($_SESSION['level']=="admin"){
//jika level admin maka tampil Hai Admin
echo "Hai Admin";
}else{
//jika level admin maka tampil Hai User
echo "Hai User";
}
}else{
header("location:form_login.html");
}
?>
coba anda sebelum login akses file admin langsung di browser seperti berikut
http://localhost/admin.php
maka akan otomatis kembali ke halaman login,
itu karena pada halaman admin kita melakukan checking perhatikan baris code
if(isset($_SESSION['username'])){
}else{
header("location:form_login.html");
}
code itu yang bekerja untuk melakukan cek apakah telah ada session yang terdaftar atau belum.
untuk artikel session bisa di pelajari step by stepnya disini
untuk pemahaman mengenai isset sebagai validasi bisa di pelajari di link berikut
dan ketika anda login sebagai user akan tampil seperti berikut
ketika login sebagai admin
ketika login sebagai user
semoga bermanfaat



Tidak ada komentar:
Posting Komentar