Membuat Login Dengan PHP dan MySQLI Part 2


Selamat datang di Tutorial Login Dengan PHP MySQLi Part 2 , di tutorialnya ini kita melanjutkan tentang membuat login dengan PHP dan MySQLi pada part sebelumnya.

Sebelumya pada part 1 kita bahas sampai dengan pengimputan data akun admin di database dan membuat koneksi database dengan mysli.

Membuat Login Dengan PHP dan MySQLi Part 2

Pada tutorial kita telah sampai pada cara membuat koneksi database. Sekarang kita melanjutkan dengan membuat login sederhana untuk admin.

buat sebuah file baru lagi dengan nama index.php

index.php

<!DOCTYPE html>
<html>
<head>
<title>Membuat Login Dengan PHP dan MySQLi - WWW.MALASNGODING.COM</title>
</head>
<body>
<h2>Login - www.malasngoding.com</h2>
<br/>
<!-- cek pesan notifikasi -->
<?php
if(isset($_GET['pesan'])){
if($_GET['pesan'] == "gagal"){
echo "Login gagal! username dan password salah!";
}else if($_GET['pesan'] == "logout"){
echo "Anda telah berhasil logout";
}else if($_GET['pesan'] == "belum_login"){
echo "Anda harus login untuk mengakses halaman admin";
}
}
?>
<br/>
<br/>
<form method="post" action="cek_login.php">
<table>
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="username" placeholder="Masukkan username"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="password" placeholder="Masukkan password"></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" value="LOGIN"></td>
</tr>
</table>
</form>
</body>
</html>

nah di file index.php ini kita membuat halaman login sederhana untuk admin.

kita lanjtkan lagi dengan membuat file yang akan mengelola data yang di kirim dari form login dari index.php.

pada file index.php yang membuat halaman login di atas kita menetapkan aksi dari form ini 'cek_login.php' dengan method 'post' untuk jenis pengiriman datanya.

buat sebuah file baru lagi dengan nama cek_login.php.

cek_login.php

<?php
// mengaktifkan session php
session_start();
 
// menghubungkan dengan koneksi
include 'koneksi.php';
 
// menangkap data yang dikirim dari form
$username = $_POST['username'];
$password = $_POST['password'];
 
// menyeleksi data admin dengan username dan password yang sesuai
$data = mysqli_query($koneksi,"select * from admin where username='$username' and password='$password'");
 
// menghitung jumlah data yang ditemukan
$cek = mysqli_num_rows($data);
 
if($cek > 0){
$_SESSION['username'] = $username;
$_SESSION['status'] = "login";
header("location:admin/index.php");
}else{
header("location:index.php?pesan=gagal");
}
?>

perhatikan, disini kita aktifkn dulu session php. Karena kita menggunakan session sebagai penanda status pengguna yang akan login.

kita mengaktifkan session php dengan synyax berikut

session_start();

kemudia jangan lpa juga untuk menghubngkan dengan file koneksi database yang sudah kita buat sebelumnya.

include 'koneksi.php';

kemudian menangkap data yang dikirim dari form login

$username = $_POST['username'];
$password = $_POST['password'];
kemudian kita seleksi data admin yang memiliki username dan password yang sesuai dengan yang diinput pada frm login.

$data = mysqli_query($koneksi,"select * from admin where username='$username' and password='$password'"
selanjutnya kita hitung jumlah record yang sesuai dengan username dan password yang diinput.

$cek = mysqli_num_rows($data);
    jika data username dan password admin ditemukan di tabel 'admin' maka nilai dari variabel $cek adalah jumlah dari record yang ditemukan. Bearti variabel $cek bernilai 1 jika username dan password yang diinput sesuai dengan yang ada di database. Karena fungsi mysqli_num_row() berfungsi untuk menghitung jumlah record hasil dari query yang ada dalam parameter si fungsi mysqli_nuw_rowa() ini.

Selanjtnya kita cek dengan 'if else' jika variabel '$cek' lebih besar dari nol (bearti username dan password yang diinput sesuai), maka kita buat session username dan session status seperti syntax berikut. Kemuadian kita alihkan ke halaman login (index.php) sambil mengirimkan data pesan (?pesan=gagal).

if($cek > 0){
$_SESSION['username'] = $username;
$_SESSION['status'] = "login";
header("location:admin/index.php");
}else{
header("location:index.php?pesan=gagal");
}
itu sebabnya di file index.php (halaman login) kita membuat pengecekna seperti berikut (perhatikan pada file index.php)

<?php
if(isset($_GET['pesan'])){
if($_GET['pesan'] == "gagal"){
echo "Login gagal! username dan password salah!";
}else if($_GET['pesan'] == "logout"){
echo "Anda telah berhasil logout";
}else if($_GET['pesan'] == "belum_login"){
echo "Anda harus login untuk mengakses halaman admin";
}
}
?>
    ini untuk memeriksa pesan yang di kirim, karena tadi jika username dan paswoord tidak ditemukan, akan dikirimkan pesan 'gagal' . Pada pengecekan notifikasi ini kita akan menampilkan pesan notifikasi "login gagal ! username dan password salah "jika username dan password gagal.

Membuat Halaman Admin

Seperti yang teman-teman lihat pada syntax sebelumnya saat melakukan pengecekan, jika username dan password benar, maka halaman akan kita alihkan ke halaman admin yang berada dalam folder admin.
jadi sekarang kita buat sebuah folder baru dengan nama 'admin'
setelah membuat folder admin, buat sebuah file baru lagi dengan nama index.php. Pada file index.php ini kita akan membuat halaman sederhana untuk admin.

admin/index.php

<!DOCTYPE html>
<html>
<head>
<title>Membuat Login Dengan PHP dan MySQLi - WWW.MALASNGODING.COM</title>
</head>
<body>
<h2>Halaman Admin</h2>
<br/>
 
<!-- cek apakah sudah login -->
<?php
session_start();
if($_SESSION['status']!="login"){
header("location:../index.php?pesan=belum_login");
}
?>
 
<h4>Selamat datang, <?php echo $_SESSION['username']; ?>! anda telah login.</h4>
 
<br/>
<br/>
 
<a href="logout.php">LOGOUT</a>
 
 
</body>
</html>
coba perhatikan pada file index.php, disini kita buat pengecekan dangan "if else".

<!-- cek apakah sudah login -->
<?php
session_start();
if($_SESSION['status']!="login"){
header("location:../index.php?pesan=belum_login");
}
?>
    jika session status sama dengan "login" maka halaman akan dialihkan ke halaman login sambil mengirim pesan "belum login". Pengecekan ini berfungsi untuk keamanan agar halaman admin tidak bisa dikakses sebelum melakukan login (session login di buat saat login berhasil, perhatikan lagi pengecekan pada file cek_login.php).

Kita juga menampilkan nitifikasi selamat datang untuk username yang sedang login dengan cara langsung menampilkan session username yang berhasil login.
jika yang login dengan cara langsung menampilkan session username yang berhsil login.
Jika yang login adalaha pengguna dengan username "admin" maka yang tampil disini adalah "selamat datang , admin" begitu juga selainya.

terakhir kita buat tombol untuk link logout.

<a href="logout.php">LOGOUT</a>
saat link logout diklik, maka akan dialihkan ke file logout.php.

buat file baru dengan nama logout.php

admin/logout.php

<?php
// mengaktifkan session
session_start();
 
// menghapus semua session
session_destroy();
 
// mengalihkan halaman sambil mengirim pesan logout
header("location:../index.php?pesan=logout");
?>
    file logout berguna untuk menghapus semua session yang telah dibuat saat login, dan mengalihkna halaman kembali ke halaman login sambil mengirim pesan 'logout".

kita menghapus semua session dengan fungsi session_destroy() seperti pada contoh di ataas.

nah , semuanya selesai. wkatunya kita coba

jalankan localhost/login pada browser.





nah, halaman login tampil, selanjutnya untuk mencoba apakah form login sudah berjalan dengan sebagai mana mestinya, coba isikan username : tes , dan password : tes 123.




klik tombol LOGIN maka akan muncul notifikasi kalau username dan password yang di masukan salah.

sekarang coba masuk langsung ke halaman admin tanpa melakukan login, akses "localhost/login/admin".

maka akan muncul notifikasi yang mengharuskan kita untuk login terlebih dahulu.

mantap , sekarang coba masukan username dan password yang benar. username : admin, password: admin123 dan klik LOGIN.

login pun berhasil, kita coba klik pada link logout, maka halaman akan di alihkan kembali ke halaman login sambil menampilkan pesan notifikasi bahawa telah berhasil logout.

selesai sampai disini kita telah selesai membuat login dengan PHP dan MySQLi. Sekian tutorial Membuat Login Dengan PHP dan MySQLi Part 2, semoga dapat bermanfaat.

Post a Comment

Previous Post Next Post