Cara Membuat Login Dengan Session di PHP


Cara Membuat Login Dengan Session di PHP

dalam sebagian website menerapkan sistem login, karena ada beberapa data yang tidak di publis ke media, dan hanya user tertentu yang dapat melihat data tersebut. pengertian login adalah proses masuk ke jaringan komputer dengan memasukkan identitas akun minimal terdiri dari username/akun pengguna dan password untuk mendapatkan hak akses. Antara username dan password keduanya saat digunakan untuk login harus tepat jangan sampai salah ketik, karena keduanya saling terkait dan tidak bisa dipisahkan. Biasanya username/akun pengguna tidak pernah diubah karena merupakan identitas unik, tetapi password/ kata sandi dapat diubah sesuai keperluan untuk menjaga keamanan akun.
ok langsung saja ke pembahasan dalam tutorial kali saya akan berbagi cara membuat login dengan session di PHP, sebetulnya banyak cara membuat login dengan sesssion dan salah satunya yang akan saya jelaskan, untuk membuat login anda harus menentukan file dan fungsi nya terlebih dahulu, dalam tutorial kali ini saya akan membuat 4 file dengan nama dan fungsi sebagi berikut
1. file index.php menampilkan halaman depan dengan form inputan username dan password
2. file cek_login.php mengeksekusi data yang masuk dari form login
3. file home.php adalah halaman utama ketika user berhasil login
4. file logout.php menghapus session yang sedang aktif
pertama buat project dengan nama terserah anda, kemudian salin kode berikut dan simpan file dengan nama index.php
<?php
 session_start();

 // set session
 $_SESSION['login'] = false;
?>
<!DOCTYPE html>
<html>
<head>
<title>CARA MEMBUAT LOGIN DENGAN SESSION DI PHP</title>
<style type="text/css">
body { font-family: Verdana; font-size: 14px; background-color: #F7F7F7; }
input, button { padding: 7px; }
button { cursor: pointer; }
.container { background-color: #FFFFFF; border: 1px solid #000000; padding: 10px; width: 400px; margin: 0 auto; }
.container .form-control { margin-bottom: 10px; width: 100%; }
.container .form-control:last-child { margin-bottom: 0; }
.container .form-control input { width: 380px; }
.container .form-control button { width: 397px; }
.container .pesan { color: #FFFFFF; text-align: center; padding: 7px; background-color: #FF0000; font-weight: bold; }
</style>
</head>
<body>
<div class="container">
<h1><center>PANEL LOGIN</center></h1>
<hr />
<form action="cek_login.php" method="POST">
<div class="form-control">
  <input type="text" name="user" placeholder="Masukan username">
</div>
<div class="form-control">
  <input type="password" name="pass" placeholder="Masukan password">
</div>
<div class="form-control">
  <button type="submit">LOGIN</button>
</div>
<?php
// jika mendapatkan parameter $_GET['p']
if(isset($_GET['p'])){
?>
<div class="pesan">
<?php echo $_GET['p']; ?>
</div>
<?php } ?>
</form>
</div>
</body>
</html>
pada baris ke 5 saya menentukan $_SESSION['login'] = false; agar semua halaman yang membutuhkan login tidak bisa di akses dengan mengetikan di kolom URL
kemudian selanjutnya buat file dengan nama cek_login.php, dan simpan di dalam project yang tadi anda buat, lalu salin kode berikut
<?php
 session_start();

 $user = strtoupper($_POST['user']);
 $pass = md5($_POST['pass']);

 // menentukan user yang bisa login
 $valid_user = 'ROHMAT';
 $valid_pass = md5(1234);

 if(!empty($user) and !empty($pass)){
  if($user == $valid_user and $pass == $valid_pass){
   $_SESSION['login'] = true;
   $_SESSION['user'] = $user;

   header('Location: home.php');
  }else{
   header('Location: index.php?p=username dan password anda salah');
  }
 }else{
  header('Location: index.php?p=username dan password tidak boleh kosong');
 }
jika sudah, selanjutnya buat file dengan nama home.php dan simpan di dalam project yang tadi anda buat, lalu salin kode berikut
<?php
 session_start();

 // cek apakau user sudah login
 if($_SESSION['login'] == false){
  header('Location: index.php');
 }
?>
<!DOCTYPE html>
<html>
<head>
<title>CARA MEMBUAT LOGIN DENGAN SESSION DI PHP</title>
<style type="text/css">
body { font-family: Verdana; font-size: 14px; background-color: #F7F7F7; }
input, button { padding: 7px; }
button { cursor: pointer; }
.container { background-color: #FFFFFF; border: 1px solid #000000; padding: 10px; width: 900px; margin: 0 auto; }
.container .logout {}
</style>
</head>
<body>
<div class="container">
<h1>APLIKASI</h1>
<hr />
<strong class="logout"><a href="logout.php">keluar(<?php echo $_SESSION['user']; ?>)</a></strong>
<hr />
<strong>Selamat datang di aplikasi</strong>
</div>
</body>
</html>
dan yang terakhir buat file dengan nama logout.php dan simpan di dalam project yang tadi anda buat, lalu salin kode berikut
<?php
 session_start();

 session_destroy();
 session_unset();

 header('Location: index.php');
jika semua file sudah di buat sekarang buka project dengan browser, dan coba dengan klik button login tanpa harus mengisi username dan password, anda akan mendapatkan pesan seperti gambar di bawah ini

Cara Membuat Login Dengan Session di PHP (index error)

pesan akan muncul ketika halaman index.php mendapatkan parameter p lihat gambar di bawah ini

Cara Membuat Login Dengan Session di PHP (url error)

kalau anda memasukan username dan password yang sudah di tentukan di file cek_login.php maka anda akan di lempar ke halaman home.php, lihat gambar di bawah ini

Cara Membuat Login Dengan Session di PHP (home)

lalu bagai mana jika ingin login berdasarkan data dari database,
buatlah database dengan nama terserah anda kemudian buat table users, silahkan salin kode SQL berikut
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `usname` varchar(25) DEFAULT NULL,
  `passwd` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ('1', 'rohmat', '81dc9bdb52d04dc20036dbd8313ed055');
selanjutnya buka file cek_login.php dan ganti kodenya dengan kode berikut
<?php
 $host = 'localhost';
 $user = 'root';
 $pass = '';
 $db = 'belajar_login';

 $conn = mysql_connect($host, $user, $pass);
 mysql_select_db($db, $conn);

 // ambil data
 $user = strtoupper($_POST['user']);
 $pass = md5($_POST['pass']);

 if(!empty($user) and !empty($pass)){
  $sql = 'SELECT * FROM users';
  $sql .= ' WHERE usname="'.$user.'"';
  $sql .= ' AND passwd="'.$pass.'"';
  $rs = mysql_query($sql);
  $row = mysql_fetch_array($rs);

  $valid_id = $row['id'];
  $valid_user = strtoupper($row['usname']);
  $valid_pass = $row['passwd'];

  if($user == $valid_user and $pass == $valid_pass){
   $_SESSION['login'] = true;
   $_SESSION['id'] = $valid_id;
   $_SESSION['user'] = $valid_user;

   header('Location: home.php');
  }else{
   header('Location: index.php?p=username dan password anda salah');
  }
 }else{
  header('Location: index.php?p=username dan password tidak boleh kosong');
 }
Keterangan :
- Ganti isi dari $user, $pass dan $db sesuai dengan username, password dan database anda.
Ok. sampai disini dulu tutorial kali ini, selamat mencoba dan semoga bisa bermanfaat.

Berbagi Via

Share Facebook Share Twitter Share Google+ Share Pinterest
Jangan lupa tinggalkan komentarnya ya :)

4 comments:

  1. kok punya saya pas login ga ngarahin ke home.php sih, malah ngelempar ke index.php lagi?

    ReplyDelete
  2. terima kasih ilmunya gan....

    semoga lancar dan sukses.

    ReplyDelete
  3. Terima kasih banyak atas artikel ini. Bagus sekali. Saya, Laurensia Kathryn Shellen(1922300001) dari ISB Atma Luhur, jangan lupa kunjungi website https://www.atmaluhur.ac.id

    ReplyDelete
  4. Gw binggung njirr yg di maksud
    Buat tabel user apaan?


    Not:masih pemula gw jadi blm paham

    ReplyDelete