Membuat Login Dengan PHP dan MySQLi Part 2

Membuat Login Dengan PHP dan MySQLi Part 2
Selamat datang di Tutorial Membuat Login Dengan PHP dan MySQLi Part 2, di tutorial ini kita akan melanjutkan pembahasan tentang membuat login dengan PHP dan MySQLi pada part sebelumnya.
Sebelumnya pada part 1 kita telah membahas sampai ke penginputan data akun admin di database dan membuat koneksi database dengan mysqli.
Silahkan baca tutorial sebelumnya jika teman-teman belum membacanya. agar tidak ada kendala di depannya dalam mengikuti tutorial membuat login dengan PHP dan MySQLi ini.
- Tutorial Cara Membuat Koneksi Database PHP dan MySQLi
- Tutorial Membuat Login Dengan PHP dan MySQLi Part 1
Membuat Login Dengan PHP dan MySQLi Part 2
Pada tutorial Part 1 kita telah sampai pada cara membuat koneksi database nya. sekarang kita akan melanjutkannya dengan membuat halaman login sederhana untuk admin. selanjutnya akan di jelaskan secara bertahap agar lebih mudah di pahami oleh teman-teman.
buat sebuah file baru lagi dengan nama index.php.
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<!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. silahkan teman-teman baca lagi tutorial form HTML jika teman-teman belum membacanya. dan penanganan atau pengiriman data dengan form yang sudah di bahas sebelumnya.
kita lanjutkan 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 telah menetapkan aksi dari form ini adalah ‘cek_login.php’ dengan method ‘post’ untuk jenis pengiriman datanya. silahkan baca lagi tentang GET dan POST jika teman-teman belum mempelajarinya. sudah di bahas juga di www.malasngoding.com.
buat sebuah file baru lagi dengan nama cek_login.php.
cek_login.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?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, di sini kita aktifkan dulu session php. karena kita menggunakan session sebagai penanda status pengguna yang akan login. baca di sini tutorial session php.
kita mengaktifkan session php dengan syntax berikut
1 |
session_start(); |
kemudian jangan lupa juga untuk menghubungkannya dengan file koneksi database yang sudah kita buat.
1 |
include 'koneksi.php'; |
kemudian menangkap data yang dikirim dari form login.
1 2 |
$username = $_POST['username']; $password = $_POST['password']; |
silahkan baca di sini untuk tutorial GET dan POST pada form.
kemudian kita seleksi data admin yang memiliki username dan password yang sesuai dengan yang di input pada form login.
1 |
$data = mysqli_query($koneksi,"select * from admin where username='$username' and password='$password'"); |
selanjutnya kita hitung jumlah record yang sesuai (yang sesuai dengan username dan password yang di input).
1 |
$cek = mysqli_num_rows($data); |
jika data username dan password admin di temukan di tabel ‘admin’, maka nilai dari variabel $cek adalah jumlah dari record yang di temukan. berarti variabel $cek bernilai 1 jika username dan password yang di input sesuai dengan yang ada di database. karena fungsi mysqli_num_rows() berfungsi untuk menghitung jumlah record hasil dari query yang ada dalam parameter si fungsi mysqli_num_rows() ini.
selanjutnya kita cek dengan if else jika variabel $cek lebih besar dari nol (berarti username dan password yang di input sesuai), maka kita buat session username dan session status seperti pada syntax berikut. kemudian kita alihkan ke folder admin/index.php.
jika tidak maka kita alihkan halamannya kembali ke halaman login (index.php) sambil mengirimkan data pesan (?pesan=gagal).
1 2 3 4 5 6 7 |
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 pengecekan seperti berikut (perhatikan pada file index.php)
1 2 3 4 5 6 7 8 9 10 11 |
<?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 password tidak di temukan, akan dikirimkan pesan “gagal”. pada pengecekan notifikasi ini kita akan menampilkan pesan notifikasi “Login gagal! username dan password salah!” jika username dan password gagal. begitu juga seterusnya dengan pesan logout dan belum_login yang akan kita buat pengalihannya sebentar lagi.
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’.

membuat login dengan php dan mysqli part 2
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.
Membuat Login Dengan PHP dan MySQLi Part 2
admin/index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!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. di sini kita buat pengecekan dengan if else.
1 2 3 4 5 6 7 |
<!-- cek apakah sudah login --> <?php session_start(); if($_SESSION['status']!="login"){ header("location:../index.php?pesan=belum_login"); } ?> |
jika session status tidak sama dengan “login” maka halaman akan di alihkan ke halaman login lagi sambil mengirim pesan “belum_login”. pengecekan ini berfungsi untuk keamanan agar halaman admin tidak bisa di akses sebelum melakukan login (session login di buat saat login berhasil, perhatikan lagi pengecekan pada file cek_login.php).
kita juga menampilkan notifikasi selamat datang untuk username yang sedang login dengan cara langsung menampilkan session username yang berhasil login.
jika yang login adalah pengguna dengan username “admin” maka yang tampil di sini adalah “selamat datang, admin”. begitu juga selainnya.
terakhir kita buat tombol untuk link logout.
1 |
<a href="logout.php">LOGOUT</a> |
saat link logout di klik, maka akan di alihkan ke file logout.php.
buat file baru dengan nama logout.php.
admin/logout.php
1 2 3 4 5 6 7 8 9 10 |
<?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 di buat saat login. dan mengalihkan halaman kembali ke halaman login sambil mengirim pesan ‘logout’.
kita menghapus semua session dengan fungsi session_destroy() seperti pada contoh di atas.
nah, semuaya selesai. waktunya kita coba.
jalankan localhost/login pada browser.

membuat login dengan php dan mysqli part 2
nah, halaman login tampil. selanjutnya untuk mencoba apakah form login ini sudah berjalan dengan sebagai mana mestinya, coba isikan username : tes, dan password tes123.

contoh login dengan php dan mysqli
dan klik tombol LOGIN. maka akan muncul notifikasi kalau username dan password yang di masukkan salah.

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

keamanan login admin php dan mysqli
maka akan muncul notifikasi yang mengharuskan kita untuk login terlebih dulu.
mantap. sekarang coba masukkan username dan password yang benar. username : admin, password : admin123. dan klik LOGIN.
baca tutorial membuat login dengan php dan mysqli part 1.

contoh membuat login admin dengan php dan mysqli
login pun berhasil. kita coba klik pada link logout, maka halaman akan di alihkan kembali ke halaman login sambil menampilkan pesan notifikasi bahwa telah berhasil logout.

membuat logout degan php dan mysqli
selesai. sampai di sini kita telah selesai membuat login dengan PHP dan MySQLi. sekian tutorial Membuat Login Dengan PHP dan MySQLi Part 2. semoga dapat bermanfaat.
Tutorial membuat login dengan PHP dan MySQLi Lengkap :
Tutorial Lain :
Tutorial Menarik Lainnya

Membuat Form Login Dengan PHP Tanpa Database


Menghitung Selisih Waktu Dengan PHP


Membuat CRUD menggunakan Ajax PHP – Hapus Data


[…] kita bahas pada tutorial membuat login dengan PHP dan MySQLi Part 2. LANJUT KE PART […]
ada ga contoh yang sekaligus dengan COOKIE,
Mantap..
MAntap mas
kok saya terjebak di login gagal terus ya?padahal database sudah sesuai
coba copas langsung source code nya mas, atau download source code yg sudah jadi
punya saya kok kalo masukkan salah pasword yg keluar malah pesan” anda belum login”,bukan yang “pesan gagal”
kenapa pas tes yang salah pasword tulisan yang keluar tetep yang “belum_login” bukan yang “gagal”
saya juga gagal Terus Mas padahal sudah saya copas
download code nya ada tidak pak, saya kejebak di login terus
berhasil bang, terimakasih atas tutorialnya
sip, tolong bantuin teman-teman yang komentar di tutorial ini juga dong om, supaya jalan codingnya, hehe