Menggunakan Cookies Dan Session di PHP

Menggunakan Cookies Dan Session di PHP
Konten Halaman

Membuat dan menggunakan Cookie di PHP adalah cara menyimpan data sementara di sisi client sedangkan jika ingin menyimpan di sisi server bisa menggunakan dengan Session function.

Cookie HTTP adalah sebuah kode yang kecil berupa data yang dikirim dari situs WEB dan disimpan di komputer pengguna oleh browser WEB pengguna saat pengguna untuk keperluan browsing, biasanya disimpan dalam HTTP Header.

syntax cookie di php :

setcookie(name, value, expire, path, domain, security);

beberapa parameter yang harus ada di cookie PHP:

  • name : merupakan kunci yang dapat digunakan untuk mengambil nilai dari $_COOKIE superglobal di PHP. Variabel global ini adalah satu-satunya parameter yang diperlukan untuk mengambil value cookie.

  • value : value atau Nilai yang akan disimpan dalam cookie. Data ini dapat diakses oleh browser jadi disarankan untuk tidak menyimpan sesuatu data yang sensitif di sini.

  • expire : timestamp atau bentuk Stempel waktu dengan format Unix yang menunjukkan kapan cookie harus dalam kondisi kedaluwarsa. Jika waktu timestamp menjadi nol, maka cookie akan berstatus kadaluarsa pada akhir sesi. Jika di set ke nilai angka yang kurang dari waktu stempel timestamp Unix pada saat ini,maka cookie akan segera kadaluarsa.

  • path: sebuah cakupan jangkauan cookie. Jika di set ke / maka cookie akan tersedia di seluruh domain. dan Jika disetel ke /domain-lain/ maka cookie hanya akan tersedia di jalur URL itu dan hanya turunan dari jalur URL itu saja.secara Default, di set ke jalur URL file saat di gunakan tempat cookie sedang diet.

  • domain: Domain atau subdomain URL tempat cookie tersedia dan di set. Jika diset ke domain kosong misal pemburukode.com maka cookie akan tersedia untuk domain itu dan semua subdomain. Jika diatur ke subdomain baru.pemburukode.com maka cookie hanya akan tersedia di subdomain itu saja, dan semua subdomain yang diset.

  • secure: jika di set ke value TRUE,maka cookie hanya akan direset jika ada koneksi menggunakan protokol HTTPS yang aman antara klien dan server.

  • httponly: menentukan bahwa sebuah cookie hanya boleh tersedia melalui protokol HTTP atau HTTPS dan tidak bisa untuk tersedia bahasa pemrograman client browser seperti JavaScript. fitur ini hanya tersedia di versi PHP 5.2 atau lebih baru.

  • memodifikasi cookie dengan syntax berikut
setcookie('user, 'Sigit N, time() + 86400, '/);
  • pengecekan data cookie, syntax sebagai berikut
if (isset($_COOKIE['user'])) {
  echo 'kamu sebagai user ' . $_COOKIE['user'];
else {
  // kondisi cookie tidak diset
  echo 'Kamu tidak sedang login';
}
  • mengambil data di cookie:
echo $_COOKIE['user'];
  • menghapus data cookie :
unset($_COOKIE['user']);

Mengenal Session di PHP

Session sama seperti dengan Cookie akan tetapi penyimpanan datanya di dalam sisi server, session membutuhkan cookie isi cookienya yaitu key data random untuk kunci session, biasanya di php ada header berupa PHPSESSID itu merupakan key dari session.

  • penyimpanan utama dari session ada di sisi server, tapi key session disimpan di cookie.

  • sedangkan cookie disimpan secara penuh ada di sisi client web browser atau ada disimpan HTTP Header.

  • penggunaan session untuk menyimpan data sensitif yang tidak boleh dimodifikasi di sisi client. pemanfaatan cookie:

    • contoh cookie digunakan untuk memunculkan pesan sementara.
    • data sementara seperti analitik user.
    • untuk keranjang belanja untuk keperluan ecommerce
    • untuk menyimpan status login.
    • history browsing.
    • dan lain sebagainya.
  • sedangkan pemanfaatan session:

    • menyimpan data login user.
    • menyimpan data token sementara.
    • status data untuk flagging.
    • memanfaatkan session untuk middleware seperti di laravel.

Implementasi Syntax Session di PHP

  • Memulai Session di PHP dengan syntax berikut
<?php
    if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
        // php >= 7 version
        session_start([
            'cache_limiter' => 'private',
            'read_and_close' => true,
        ]);
    } else {
        // php < 7 version
        session_start();
    }
?>
  • pengecekan data Session, syntax sebagai berikut
<?php

session_start();

$_SESSION['id'] = 441;

if(!isset($_SESSION['login'])) {
    echo 'Silahkan Login terlebih dahulu';
    exit;
}

$user = $_SESSION['login'];

$name = $_SESSION['name'] ?? 'Guest';
  • mengambil data di Session:
$_SESSION['id'] = 1443
echo $_SESSION['id'];
  • menghapus data Session :
session_start();
$_SESSION = array();

Penjelasan :

  • $_SESSION = array(); : dengan menyimpan data kosong array maka akan mengembalikan session seperti baru lagi dan menghilangkan data