Sunday, September 1, 2013

Cara membuat form Login dengan PHP, Mysql dan SESSION

  1 comment


Kali ini saya akan berbagi cara membuat Login form dengan PHP dan nama username akan selalu tertampil pada website anda. Seperti : Selamat Datang, Username.

Pastikan sudah ada :

1. Tabel member yang berisi username dan password.
2. File connect.php atau koneksi.php yang menghubungkan ke mysql.
3. Password yang sudah teregister sudah di Enkripsi atau md5 pada saat user melakukan register.
4. Jika tidak menggunakan md5 saat melakukan register, ganti $enc_password = md5($pass); menjadi $enc_password = $pass;

Langkah pertama kita akan membuat halaman login. Buat file baru dengan nama Login.php.

Ketik kode php berikut.

<?php require_once('login_script.php'); ?>


<?php if($error) { echo $error; } ?>

<form method="POST">

      <input type="email" name="email" placeholder="Email or Username" autocomplete="off" /><br />

      <input type="password" name="password" placeholder="Password" autocomplete="off" /><br />

      <input type="submit" name="login" value="Sign In" />

</form>


Kode diatas hanya menampilkan form login.

Untuk source

<?php if ($error) { echo $error; } ?>

berfungsi untuk menampilkan error yang terjadi jika user tidak mengisi field secara benar.

Langkah kedua, kita buat halaman baru dengan judul login_script.php

<?php 
session_start();
include "connect.php";
 
 
 if ($_POST['login']) {
  
  $email = $_POST['email'];
  $pass = $_POST['password'];
  
  $enc_password = md5($pass);

   if ( empty($email) || empty($pass))
  {
   
   $error = 'This engine can\'t read your ID !' ;
   
  }
  
  else {
   
   $query = mysql_query("SELECT * FROM member WHERE email = '$email' or username = '$email' AND password = '$enc_password'");
   $num_rows = mysql_num_rows($query);
   
   if($num_rows == 1)
   {
     $fetch = mysql_fetch_array($query);
     extract($fetch);
    
     $_SESSION['username'] = $fetch['username'];
     $_SESSION['email'] = $fetch['email'];
     $_SESSION['pass'] = $fetch['password'];
    
     if(isset($_SESSION['username']))
     {
      header('location: index.php');
     }
   } else {
  
  $error = 'Wrong Username or Password.';

   }
 }
}
?>


Nanti user bisa memasukkan usernama atau email salah satunya dengan password yang benar.

Untuk halaman login kita sudah selesai.
Bagaimana jika anda ingin nama user bisa ditampilkan disemua halaman website anda ?

solusinya adalah dengan menambahkan kode session_start() pada semua halaman anda.

fungsinya untuk mengambil data dari form yang dikirimkan dari halaman login.

Sekarang kita akan menampilkan nama user di setiap halaman anda.

<p>Selamat Datang, <?php if ($_SESSION['username']) { echo $_SESSION['username'] } else { echo "Guest." } ?></p>

fungsi else disini adalah, jika tidak ditemukan nama username maka session akan menampilkan yang lainnya atau Guest.! Jika anda tidak menyisipkan else maka yang terlihat hanya salam "Selamat Datang,".

Sekian yang dapat saya jelaskan, semoga bermanfaat dan membantu anda dalam berkarya.

Tinggalkan komen jika ada pertanyaan.

Terimakasih, salam

Kadek Pradnyana

1 comment :

  1. Harrah's Las Vegas Casino & Hotel | DRMCD
    Harrah's Las Vegas Casino 동해 출장마사지 & Hotel. 대구광역 출장안마 Hotel 순천 출장마사지 Address: 3131 Las Vegas Blvd. 정읍 출장마사지 South, Las Vegas, NV 89109. (702) 770-7555. Online 청주 출장마사지 casino games, poker

    ReplyDelete