Jumat, 13 November 2015

Belajar PHP MySql - Membuat Login User

Belajar Membuat Login dengan PHP MySql

Login adalah sebuah sistem yang memvalidasi akun seseorang tersebut apakah dia termasuk pengguna yang boleh masuk atau bukan. Biasanya login di gunakan untuk website yang bersifat privat seperti blog, atau Sistem Informasi yang khusus dapat di akses oleh si pengguna yang berhak saja.

Kali ini saya akan memberikan toturial tentang cara membuat login di php, dan kita akan membahas diantaranya tentang :
  • Konsep Login
  • Belajar Login tanpa session
  • Belajar Login dengan session
Baiklah, kita akan membahasnya satu-persatu toturial seperti yang kita sebutkan di atas :

1. Konsep Login

Konsep login ini sendiri menggunakan pencarian dalam SQL yaitu WHERE. Biasanya Login ini gabungan dari user dan password maka konsep pencariannya menggunakan AND. AND ini sendiri akan mencari 2 field dalam tabel tersebut secara bersamaan jika ada 1 field yang sesuai tetapi field yang kedua tidak maka proses tidak bisa dilaksanakan. Sebagai contoh berikut :


Contoh SQL Login
SELECT * FROM `siswa` WHERE `nama`='Andi' AND `kelas`='XXI'


Dari konsep di atas kita anggap saja `nama` adalah user dan `kelas` adalah password jika salah satunya tidak ada dalam tabel `siswa` maka data tidak akan muncul di dalam sistem.

Sekarang kita coba buat tabel yang khusus menyediakan untuk login, buka database `pemulabelajar` yang sebelumnya kita buat, masuk ke tab SQL dan copy paste perintah berikut :

Tambah TABEL dengan SQL
CREATE TABLE `user` (`username` VARCHAR(20) PRIMARY KEY, `sandi` VARCHAR(20))

Dari perintah di atas maka kita sudah memiliki tabel dengan nama `user` dengan attribute `username` dan `sandi`. Setelah kita membuat tabel di atas maka contoh SQL loginnya akan seperti berikut :

Contoh SQL Login
SELECT * FROM `user` WHERE `username`='nama user' AND `sandi`='password user'


Untuk mengisi tabel `user` tersebut silahkan anda baca Cara Input Data di PHP MySQl di artikel sebelumnya.

2. Login Tanpa Session

Login tanpa session ini bersifat tanpa ada perbedaan akses, maksudnya adalah login hanya di peruntukkan untuk user ataupun admin saja bahasa kerennya loginnya satu-satu. Setelah mempelajari konsep login di atas tentu Anda sudah mengerti SQL loginnya dan sekarang tinggal menerapkannya pada PHP.

a. Buat File Login.php

Sekarang coba anda buat file dengan nama login.php dan copy skript HTML di bawah ini untuk membuat sebuah form untuk user.

Script form login.php
<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Form Login - Study-newbie.blogspot.com</title>
</head>
<body>
<p>Form Login User</p>
<form method="post">
  <p>username :</p>
  <input name="user" type="text" />
  <p>password :</p>
  <input name="sandi" type="password" /><br/>
  <button type="submit" name="login">Login</button>
</form>

</body>
</html> 

Setelah membuat form HTML untuk user tersebut sekarang kita coba membuat script login sederhana. Copy script berikut dan letakkan di atas kode <!DOCTYPE html> :
Script PHP login.php
<?php

$dbhost = 'localhost';
$dbuser = 'root';
$dbpassword = '';
$dbname = 'pemulabelajar';
$koneksi = mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbname,$koneksi);

if (isset($_POST['login'])) {
  $user = $_POST['user'];
  $sandi = $_POST['sandi'];
  $login=mysql_query("SELECT * FROM `user` WHERE `username`='$user' AND `sandi`='$sandi'");
  if(mysql_num_rows($login)=='0'){
    echo "Username dan Kata Sandi anda tidak cocok";
  } else {
    header('location: login_berhasil.php');
  }
}

?>

b. Buat File login_berhasil.php

Dan sekarang coba buat file dengan nama `login_berhasil.php` yang mana file ini akan menjadi tujuan login kita jika login valid.
Setelah membuat file dengan nama `login_berhasil.php` sekarang tulis seperti script di bawah ini di dalam file `login_berhasil.php` tersebut :
Script file login_berhasil.php
<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Login Sukses - Study-newbie.blogspot.com</title>
</head>
<body>
<h3>Selamat datang di menu user</h3>
<p>Jika menu ini muncul maka Anda telah berhasil login.</p>
</body>
</html> 

Semoga pembahasan Cara Membuat Login di PHP ini dapat membantu anda dalam mengembangkan website PHP anda.

3. Login Dengan Session

Login dengan session ini artinya kita membuat login user dan admin di php tanpa harus membuat login masing-masing user tersebut atau memisah login tersebut. Login dengan session ini berarti kita membuat sebuah form login yang di peruntukan untuk beberapa level user misalnya : user biasa ataupun Admin. Sebelum melanjutkan toturial Membuat Login Session di PHP, kita akan menambah attribute `level` pada tabel `user` sebelumnya.
Copy script di bawah ini dan pastekan di tab SQL sama seperti pada pembahasan di atas.
Tambah TABEL dengan SQL
DROP TABLE `user`;
CREATE TABLE `user` (`username` VARCHAR(20) PRIMARY KEY, `sandi` VARCHAR(20), `level` VARCHAR(20));

Setelah pembuatan tabel `user` di atas, maka kita sekarang memasukkan data dengan SQL. Langkahnya anda klik tabel `user` lalu masuk ke tab SQL dan copy paste script dibawah. Jika Anda ingin memasukkan data dengan PHP anda bisa baca tutorial Cara Memasukkan Data dengan PHP MySql.
Tambah TABEL dengan SQL
INSERT INTO `user`(`username`, `sandi`, `level`) VALUES ('Andi','pas123','Admin'); INSERT INTO `user`(`username`, `sandi`, `level`) VALUES ('Pemula','123pas','User');

Dari SQL di atas maka kita sudah memiliki data Andi Sebagai Admin dan Pemula Sebagai User. Sekarang kita coba Cara Login Session di PHP dengan berbekal dari 2 tutorial di atas.

a. Edit File login.php

Anda Hapus semua script php yang ada di login.php sebelumnya yaitu dari kode <?php sampai kode ?>, dan pastekan script PHP di bawah ini :
Script PHP login.php
<?php
session_start();


$dbhost = 'localhost';
$dbuser = 'root';
$dbpassword = '';
$dbname = 'pemulabelajar';
$koneksi = mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbname,$koneksi);

if (isset($_POST['login'])) {
  $user = $_POST['user'];
  $sandi = $_POST['sandi'];
  $login=mysql_query("SELECT * FROM `user` WHERE `username`='$user' AND `sandi`='$sandi'");
  if(mysql_num_rows($login)=='0'){
    echo "Username dan Kata Sandi anda tidak cocok";
  } else {
    while ($data=mysql_fetch_array($login)) {
      $_SESSION['level']=$data[2];
    }
    header('location: login_berhasil.php');
  }
}

?>

b. Hapus Script Login_berhasil.php

Dan hapus semua script yang ada pada login_berhasil.php dan copy paste script di bawah ini untuk menindetifikasi bahwa di Admin dan User.
Script PHP login_berhasil.php
<?php
session_start();
$dbhost = 'localhost';
$dbuser = 'root';
$dbpassword = '';
$dbname = 'pemulabelajar';
$koneksi = mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbname,$koneksi);

$level=$_SESSION['level'];
?>
<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Login Sukses - Study-newbie.blogspot.com</title>
</head>
<body>
<h3>Selamat datang di Sistem</h3>
<?php
if ($level == 'Admin') {
  echo '<p>Hai, Anda telah mengakses menu Admin.</p>';
} else {
  echo '<p>Hai, Anda telah mengakses menu User.</p><a href="keluar.php">Keluar</a>';
}
?>
</body>
</html> 

Dan lihat perbedaan dari masing-masing Andi dan Pemula di bagian menu file login_berhasil.php. Session tersebut akan aktif selama kita berada di website localhost/study-newbie kita itu. Anda dapat membuat logout dengan script session_destroy(); di php tersebut, atau anda bisa melihat script di bawah untuk Cara Logout di PHP :
Kode Logout
<?php
session_destroy();
    header('location:index.php');
?>
Dari script di atas logout kita akan membuat session kita berakhir dan akan menuju langsung ke index.php kita sebelumnya, jika Anda ingin mencari Cara membuat Validasi di PHP akan saya berikan toturial berikutnya :).

Terima kasih telah membaca Artikel Belajar Membuat Login dengan PHP MySql, semoga bermanfaat dan jangan lupa share ke teman-teman kita. Terima Kasih :).