Thursday 19 May 2016

Login dan Logout Menggunakan $_SESSION, PHP, MySQL( Tutorial $_SESSION 2 )

Gambar 1. Form login pada tutorial ini

Gambar 2. Form selamat datang dan logout

Jika pada tutorial sebelumnya (Untuk Apa dan Bagimana Menggunakan $_SESSION ( Tutorial $_SESSION 1 )) mambahas apa dan bagaimana cara menggunakan $_SESSION. Pada kali tutorial ini akan membahas login dan logout sebagai contoh penggunaan $_SESSION.



1. CSS bootstrap hanya optional, tanpa bootstrap sistem tetap berjalan.
source code 1 (formlogin.html) :
<html>
<head>
    <link href="dist/css/bootstrap.min.css?v=<?php time();?>" rel="stylesheet">
</head>
<body>
 <div class="container">
   <div style="border: 5px solid green; padding:5px; margin:auto; width:300px;" >
     <form action="autentifikasi.php" method="POST">
        Username: <input type="text"  class="form-control"  name="username"></input><br/>
        Password: <input type="password" class="form-control" name="password"></input><br/>
        <input class="btn btn-success form-control" type="submit" value="login">
     </form>
     </div>
    </div>
</body>
</html>

2. autentifikasi.php digunakan untuk menyimpan status komputer clinet ($_SESSION["status"] = "login";). Status akan bernilai login bila username dan password ada dalam database.
source code 2 (autentifikasi.php):
<?php
  if(isset($_POST['username'])&isset($_POST['password'])){
    $username=$_POST["username"];
    $password=$_POST["password"]; 
    $conn = mysql_connect("localhost", "root", "");
    if ($conn) {
       mysql_select_db("dbblog");
       $sql="SELECT * FROM user1 WHERE username='".$username."' and password='".$password."'";
       $retval = mysql_query($sql , $conn );
       $num_rows = mysql_num_rows( $retval); //jika password n username ditemukan jumlah baris yang ditemukan 
       //berarti 1
    if($num_rows==1){
       session_start();
       $_SESSION["status"] = "login";
       header("Location: http://localhost:8012/contohsession/halamandepan.php");
       die();
 }
    else{
       header("Location: http://localhost:8012/contohsession/formlogin.html");
       die();
}
} 
  else
    echo "fail";
}
?>

3. Jika status tidak bernilai login maka dilempar atau dikembalikan ke formlogin.html. Button logout akan diarahkan ke url logoutautentifikasi.php.
source code 3 (halamandepan.php):
<?php
  session_start();
if($_SESSION["status"]!="login"){
  header("Location: http://localhost:8012/contohsession/formlogin.html");
  }
?>
<html>
<head>
    <link href="dist/css/bootstrap.min.css?v=<?=time();?>" rel="stylesheet">
</head>
<body>
 <div class="container">
     <div style="border: 5px solid green; padding:5px; margin:auto; width:300px;" >
       <form action="logoutautentifikasi.php" method="POST">
           <center>SELAMAT DATANG</center>
          <center>DI TUTORIAL $_SESSION 2</center><br/>
          <input class="btn btn-success form-control" type="submit" value="logout">
       </form>
        </div>
    </div>
</body>
</html>


4.  Status login dihapus kemudian diarahkan ke formlogin.html.
source code 4 (logoutautentifikasi.php):

<?php
session_start();
unset($_SESSION['status']);
header("Location: http://localhost:8012/contohsession/formlogin.html");
?>

Trimakasih..

Artikel Terkait PHP ,Query SQL

3 comments:

  1. Kalau untuk pemberitahuan data tidak masuk ke data gimana gan

    ReplyDelete
    Replies
    1. cara yang gampang
      di autentifikasi.php
      ini
      else{
      header("Location: http://localhost:8012/contohsession/formlogin.html");
      die();
      }

      jadi

      else{
      echo"<script> alert('maaf, username dan password tidak tepat');
      window.location = 'http://localhost:8012/contohsession/formlogin.html'; </script>";
      }

      Delete
  2. manteb ini bang, informatif banget
    solder uap

    ReplyDelete