Advertisement
PHP

[Tutorial] Membuatan form login dengan php dan mysql

Melanjuti artikel membuat form register sederhana dengan php dan mysql, sekarang saya akan menjelaskan cara pembuatan form loginnya.

Saya tidak perlu menjelaskan lagi tentang databasenya. Karena database yang digunakan masih sama dengan artikel sebelumnya.

Untuk pertama saya akan membuat file dengan nama login.php. 

<!--?php /*script ini berfungsi untuk mengecek apakah user sudah login atau belum, jika sudah maka akan mengarah ke home.php dan jika belum akan kembali ke login.php */ session_start(); $username = $_SESSION['username']; if (isset($username)){  header ('location:home.php'); } else { ?-->

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Login</pre>
<form action="log_act.php" method="post">
<div>Username :</div>
<input type="text" name="username" />
<div>Password :</div>
<input type="password" name="password" />
<input type="submit" value="Login" />
<div><a href="register.php">register</a></div>
</form>
<pre>
<!--?php } ?-->

Kemudian kita buat file actionnya dengan nama log_act.php

</pre>
<?php
//ini adalah membuat sessionnya
session_start();
include "db.php";
function anti_injection($data){
 $filter = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
 return $filter;
}
$username = anti_injection($_POST['username']);
$password = anti_injection($_POST['password']);
//script berikut berfungsi untuk mengecek apakah form sudah terisi dengan benar
if (!ctype_alnum($username) OR !ctype_alnum($password)){
 echo "Sekarang loginnya tidak bisa di injeksi lho.";
}
else{
if ($username&&$password){
 $get_sql = mysql_query ("SELECT * FROM users WHERE username = '$username'");
 $num = mysql_num_rows($get_sql);
 //script ini berfungsi untuk mengecek apakah usernama sudah ada atau belum
 if ($num==0){
 echo "Username Belum terdaftar";
 }
 else {
 while($row = mysql_fetch_assoc($get_sql)){
 $dbusername = $row ['username'];
 $dbpassword = $row ['password'];
 }

 /*Script ini berfungsi untuk mengecek kebenaran username dan password,
 jika sudah benar maka program akan membuat sessiojn login
 */
 $pass = md5($password);
 if ($username == $dbusername && ($pass==$dbpassword)){
 $_SESSION['username'] = $username;
 header ('location:home.php');
 }
 else {
 echo "Password Salah";
 }

 }
 }
 else {
 echo "Tolong penuhi field";
 }
}
?>
<pre>

Nah sekarang kita membuat file home.php sebagai halaman usernya.

<!--?php /*fungsi script ini sama seperta yang ada pada file login.php cuma ini kebalikannya jika user sudah login maka akan mengarah ke home.php dan jika belum maka akan kembali ke login.php */ session_start(); $username = $_SESSION['username']; if (isset($username)){ ?--><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Home</pre>
<div>Selamat Datang</div>
<div><a href="logout.php">Logout</a></div>
<pre><!--?php } else {  header ('location:login.php');  exit();  } ?-->

Terakhir kita buat file logout.php untuk mengakhiri session jika file ini di panggil.

<!--?php session_start(); session_destroy(); header ('location:login.php'); ?-->

Nah, sekian dulu artikelnya teman. Kita lanjut lagi di pembelajaran berikutnya 😀

Demo  Download soucre

Editorial Team

Editorial Team adalah mereka yang menulis artikel untuk blog PinDexain.

Related Stories

9 Responses to [Tutorial] Membuatan form login dengan php dan mysql

  1. Share pengalaman kalian disini

  2. mas..ternyata fungsi cek passwordnya mash belum benar.. walau passwordnya salah . masih bisa login

  3. cek row resultnya juga bro,
    walau unique kadang mysql juga bisa error.

  4. sekalian kasih file database nya juga dong mas, di setiap tutorial, karena orang awam seperti saya yang pemula juga kesulitan membuat file database nya.

  5. tutorialnya bagus, mencerahkan.
    maaf om, minta pencerahan..
    Bagaimana cara insert data multiple dengan checkbox dengan value true or false?
    terima kasih

  6. Wahh, thanks tutorialnya. Sangat membantu

Leave a Reply

Your email address will not be published. Required fields are marked *