Sistem Login Register Part15 – Menyimpan Data Username Dengan Session

Febri Hidayan 2 Komentar

Sistem Login Register Part15 – Menyimpan Data Username Dengan Session

Sebelumnya kita sudah belajar cara menampilkan pesan error, sekarang tiba saatnya kita menggunakan session untuk pengingat di sisi server. Baca penjelasan panjangnya dibawah ini.

Menyimpan Data Username Dengan Session

Session merupakan salah satu anggota dari SuperGlobal PHP, kita bisa menggunakan teman-temannya seperti Cookie, POST, GET, Server, dan lainnya. Dimana session digunakan untuk menyimpan data disisi server, jadi apabila kita berhasil login di akun member kita dan setelah kita menutup browser maka kita kembali di suruh login. Kenapa hal ini terjadi? Karena kita menyimpan datanya bukan disisi client. Beda dengan Cookie yang tersimpan di sisi client, jadi kalau kita mau login di akun facebook misalnya, maka terdapat remember me atau tetap masuk (di centang ya!). Maka setelah kita masuk dan menutup browsernya, kembali membuka facebook kita tidak lagi membutuhkan login. Oke! ikuti langka dibawah ini untuk menggunakan Session.

Informasi: Session menyimpan data di sisi server dan memiliki kelebihan dan kekurangan yang ada. Beda dengan penggunaan Cookie yang memiliki waktu yang telah ditetapkan untuk menghapus Cookie sendiri.

Baca juga: Sistem Login Register Part14 – Membuat Pesan Error Pada Aktivitas

Pemberitahuan: sebelum melanjutkan tutorial yang satu ini, diharapkan untuk mengikuti tutorial sebelumnya pada link diatas. Bukan hanya itu ikuti paling awal tutorial Sistem Login Register ini.

Langka1

Langkah pertama kali untuk menggunakan Session ialah melakukan penggunaan session_strat(); pada pengodingkan kita. Bukalah file header.php di folder template kemudian buat baris baru dibawah _autoload.php seperti dibawah ini.

Kode Session_Start()
<?php
// file _autoload dari folder vendor
require_once 'vendor/_autoload.php';
// memulai session
session_start();
?>

Langka2

Sekarang kita akan membuat class Session, dimana nanti kita hanya memanggil fungsinya saja hal ini memudahkan kita dalam pemograman. Copy koding dibawah ini dan simpan di folder vendor > Class > file Session.php.

Kode Class Session
<?php
class Session
{
  public static function set($name, $value)
  {
    return $_SESSION[$name] = $value;
  }

  public static function get($name)
  {
    return $_SESSION[$name];
  }

  public static function start($name)
  {
    return (!empty($_SESSION[$name])) ? true : false;
  }

  public static function destroy($local, $name = NULL)
  {
    session_start();
    session_destroy($name);
    return header("Location: $local");
  }
}

Untuk lebih lengkap penggunaan dari class Session diatas bisa kunjungi link dibawah ini dan cara penggunaannya.

Baca juga: Super Global – Cara Membuat Class Session

Langka3

Pada langkah ini kita akan membuat autoload class dimana kita tidak perlu memanggil nama classnya satu persatu. Akan tetapi yang wajib diingat nama file harus sama dengan nama classnya tidak boleh beda, nanti tidak akan terbaca nama filenya. Kurang lebih seperti ini cara autoload class-Nya, copy dan simpan di folder vendor > file _autoload.php dibaris paling atas. Untuk lengkapnya bisa lihat situs resminya disini Spl Autoload Register

Kode Spl_Autoload_Register()
spl_autoload_register( function($class) {
  require_once 'Class/'.$class.'.php';
});

Langka4

Untuk menggunakannya kita bisa langsung pergi ke file login.php kemudian di kita akan membuat settingan pada function dari Class Session dengan cara Session::set(); parameter pertama yaitu nama Session-Nya dan kedua nilai dari Session. Tempatkan script dibawah ini di statement kita yaitu ganti $mes_success. Sedikit tambahan kita menggunakan fungsi header php, yaitu untuk redirect halaman ke file index.php.

Kode Tambahan Login.php
Session::set('username', $_POST['username']);
header('Location: index.php');

Baca juga: Sistem login dan Register Dengan PDO

Langka5

Pada langka ini kita akan melakukan beberapa informasi yang akan kita tampilkan di file index.php seperti script dibawah ini.

Kode Index.php
<?php require_once 'template/header.php'; ?>
<div class="container" style="padding-top:6rem; max-width:50%;">
  <h2>Halaman Utama Index</h2>
<?php
  if (Session::start('username')) {
    echo 'Username Anda: '.Session::get('username');
  }else {
    header('Location: login.php');
  }
 ?>
</div>
<?php require_once 'template/footer.php'; ?>

Pada penggunaan fungsi Session::start(‘username’) digunakan untuk menguji nilai Session, apakah nilai dari namanya sudah ada atau belum. Kalau sudah ada nilainya makan akan tampil nama username kita, kalau tidak maka akan di pindahkan ke halaman login.php.

Baca juga: Sistem Login Register Part8 – Cara Membuat Register User

Langka6

Pada langka terakhir diharapkan untuk memberikan sedikit kodingan seperti dibawah ini. Kemudian simpan di file login.php dan register.php sebelum penggunaan perintah if. Hal ini kita lakukan untuk memindahkan halaman, sesuai yang kita harapkan yaitu apabila kita pergi ke halaman index maka pergi ke halaman login dulu sebelum pergi ke halaman index. Apabila kita sudah login maka akan kita tidak akan bisa pergi ke halaman login dan register.

Kode Validasi Location
if (Session::start('username')) {
    header('Location: index.php');
}

Kesimpulan: dari pembahasan kita kali ini mungkin agak ribet sekali dan terlalu panjang langka demi langka yang kita lalui. Kalau ada beberapa pertanyaan bisa langsung saja komentar dibawah ini?. Dalam penggunaan session kita harus session_start(), kenapa hal ini kita gunakan? Kalau kita tidak menggunakannya maka sampai kapanpun kita tidak bisa menggunakan perintah Session dan terus tampil error. Semoga tutorial kali ini bermanfaat dan selamat mencoba.

Baca juga: Sistem Login Register Part16 – Membuat Sistem Logout

Category PHPTags Sistem Login Register


  • maaf pak, yang kangkah ke 4 saya bingung. jadi taro di file login.php dibagian mananya? dibagian yang diatas “login berhasil”? atau di message.php?

  • Write a Reply or Comment

    Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.