
Dalam tutorial ini, mari kita lihat bagaimana kita bisa menerapkan otentikasi menggunakan form login standar dengan session handling. Sebagian besar situs web akan memiliki skrip login untuk memberikan otentikasi pengguna. Saya akan mempresentasikan contoh kode PHP untuk mengimplementasikan otentikasi menggunakan skrip login. Dengan autentikasi, kami dapat melindungi situs kami dengan memfilter pengguna asli.
Ada berbagai cara untuk menerapkan otentikasi dan cara yang paling populer adalah dengan menggunakan form login dan mengotentikasi berdasarkan username dan password masing-masing. Otentikasi baru-baru ini yang menggunakan OTP yang dihasilkan secara dinamis juga menjadi norma dan kita akan melihatnya di tutorial mendatang.
Dalam tutorial ini, kami menyimpan kredensial otentikasi dalam database. Kami akan menampilkan form login untuk masuk ke login credentials. Kami membandingkan data yang dimasukkan terhadap database pengguna. Jika cocok ditemukan, maka pengguna dianggap telah diautentikasi. Kami menggunakan Php Session untuk melestarikan log-in state dari pengguna yang diautentikasi. Dalam tutorial sebelumnya, kita sudah melihat tentang login via form submit dan juga via AJAX call.
Sesi Login PHP
Kami membiarkan pengguna mengirimkan kredensial masuk mereka pada formulir dan membandingkannya dengan database pengguna. Jika ada kecocokan, maka kami mengotentikasi pengguna dan menyimpan status log masuk mereka dengan menggunakan $ _SESSION “super global“. Misalnya, $ _SESSION [“member_id”], $ _SESSION [“display_name”]. Status masuk ini akan dipertahankan sampai pengguna logout. Begitu pengguna mengklik link logout, kita membersihkan sesinya dengan menggunakan PHP unset ().
User Login Interface
Pertama, kita perlu membuat antarmuka masuk untuk memungkinkan pengguna mengirimkan informasi otentikasi. Ini menampilkan field masukan username dan password dalam bentuk. Saat mengirimkan formulir ini, kami memposting nilai ke PHP. Kode HTML dan CSS adalah sebagai berikut.
<form action="" method="post" id="frmLogin"> <div class="error-message"><?php if(isset($message)) { echo $message; } ?></div> <div class="field-group"> <div><label for="login">Username</label></div> <div><input name="user_name" type="text" class="input-field"></div> </div> <div class="field-group"> <div><label for="password">Password</label></div> <div><input name="password" type="password" class="input-field"> </div> </div> <div class="field-group"> <div><input type="submit" name="login" value="Login" class="form-submit-button"></span></div> </div> </form>
dan style adalah,
#frmLogin { padding: 20px 60px; background: #B6E0FF; color: #555; display: inline-block; border-radius: 4px; } .field-group { margin:15px 0px; } .input-field { padding: 8px;width: 200px; border: #A3C3E7 1px solid; border-radius: 4px; } .form-submit-button { background: #65C370; border: 0; padding: 8px 20px; border-radius: 4px; color: #FFF; text-transform: uppercase; } .member-dashboard { padding: 40px; background: #D2EDD5; color: #555; border-radius: 4px; display: inline-block; text-align:center; } .logout-button { color: #09F; text-decoration: none; background: none; border: none; padding: 0px; cursor: pointer; } .error-message { text-align:center; color:#FF0000; } .demo-content label{ width:auto; }
Script Login PHP
Kami menerima data formulir login di halaman PHP sebagai permintaan posting. Dalam script ini, kita menghasilkan query SELECT untuk memvalidasi data pengguna dengan database. Jika pengguna berhasil diautentikasi, maka kami menambahkan status masuk pengguna dalam sebuah sesi dan menunjukkan pesan sukses dengan opsi keluar untuk pengguna. Skrip login PHP adalah,
<?php session_start(); $conn = mysqli_connect("localhost","root","","phppot_examples"); $message=""; if(!empty($_POST["login"])) { $result = mysqli_query($conn,"SELECT * FROM users WHERE user_name='" . $_POST["user_name"] . "' and password = '". $_POST["password"]."'"); $row = mysqli_fetch_array($result); if(is_array($row)) { $_SESSION["user_id"] = $row['user_id']; } else { $message = "Invalid Username or Password!"; } } ?>
Kita bisa menambahkan kode ini pada halaman yang sama di atas konten HTML atau kita bisa menyimpannya sebagai file PHP individu seperti login.php dan menambahkannya ke form action.
Kode untuk menunjukkan pesan sukses kepada pengguna ada di bagian yang lain dan kodenya adalah,
<?php } else { $result = mysqlI_query($conn,"SELECT * FROM users WHERE user_id='" . $_SESSION["phppot_demopage_459_user_id"] . "'"); $row = mysqli_fetch_array($result); ?> <form action="" method="post" id="frmLogout"> <div class="member-dashboard">Welcome <?php echo ucwords($row['display_name']); ?>, You have successfully logged in!<br> Click to <input type="submit" name="logout" value="Logout" class="logout-button">.</div> </form> </div> </div> <?php } ?>
“Pesan pembuka” akan ditampilkan dengan login pengguna dengan nama mereka dan link ke logout untuk menghapus sesi login pengguna.
Dan kode untuk logout adalah,
<?php if(!empty($_POST["logout"])) { $_SESSION["user_id"] = ""; session_destroy(); } ?>Demo
