PHP State, Session dan Cookies

  Pemrograman Web

  Pokok Bahasan 

  Konsep State pada PHP 

  Stateless Pokok Bahasan

   Statefull

  Konsep State pada

   Session

  PHP

  • Stateless

   Cookies

  • Statefull Cookies Session

PHP State - Stateless

  

  State = Keadaan

  

  Website pada umumnya menggunakan protokol HTTP Pokok Bahasan

   Pada dasarnya protokol HTTP memiliki sifat

  stateless

  Konsep State pada PHP  Pada interaksiyang bersifat stateless, maka

  • Stateless

  antara suatu interaksi request-response

  • Statefull dengan request-response lainnya bersifat independen, tidak memiliki keterkaitan satu sama lain

  Cookies

  

  Server HTTP tidak mengingat apa yang Session terjadi pada interaksi request-response yang terjadi

   Pada interaksi stateless, server HTTP tidak

  menyimpan state yang berhubungan

PHP State - Stateless

  Pokok Bahasan

  Konsep State pada PHP

  • State
  • Statefull Cookies Session Sistem langsung memberikan response kepada user dengan langsung memberikan

PHP State - Statefull

   Stateful adalah kemampuan situs untuk

  mempertahankan state (keadaan)

  

  Pada interaksi statefull, membuat sebuah website dapat menyimpan keadaan seorang user walaupun komunikasi data di jaringan tetap menggunakan HTTP

  Pokok Bahasan

  Konsep State pada PHP

  • State
  • Statefull

  Cookies Session

  Create Use Destroy

PHP State - Statefull

  Pokok Bahasan

  Konsep State pada PHP

  • State
  • Statefull

  Cookies Session

  Sistem mengetahui keadaan user sekarang dan dapat “melanjutkan” halaman apa yang

PHP State

   Penggunaan PHP State 

  Bagaimana pengguna tetap logged-in ketika dia berpindah-pindah halaman ? Pokok Bahasan

  

  Bagaimana keranjang belanja

  Konsep State pada

  pengguna tetap tersimpan ketika

  PHP

  pengguna tersebut melihat – lihat

  • Stateless barang di halaman lain untuk
  • Statefull ditambahkan ke keranjang belanja tersebut ?

  Cookies Session

PHP State

   PHP State dapat dibentuk menggunakan : 

  Cookies

  

  Pokok Bahasan Session

  Konsep State pada PHP

  • Stateless - Statefull Cookies

  Create

  Session

  Use

Cookies

  

  Cookie adalah file kecil yang diletakkan oleh server pada komputer pengguna

  

  Pokok Bahasan Cookie dikirim setiap kali pengguna mengakses web yang menjadi pemilik Konsep State pada cookie tersebut, sehingga, ukuran cookie perlu diperhatikan supaya tidak membebani PHP

  • Stateless jaringan secara berlebihan
  • Statefull

  

  Ketika kita mendefinisikan suatu cookie, maka kita menentukan berapa lama cookie

  Cookies

  tersebut valid. Jika telah melampaui waktu valid (expires), maka cookie tersebut akan Session dihapus

Cookies

   Cookies bisa digunakan untuk : 

  Otentifikasi Pokok Bahasan

  

  Melacak User

  

  Mempertahankan preferensi user, Konsep State pada shopping chart dll PHP

  • Stateless

  

  Data cookie berisi pasangan name/value

  • Statefull yang dikirim melalui header dari request HTTP (Post/Get)

  Cookies

  Session

Cara Kerja Cookies

   Saat browser meminta page, server dapat

  mengirim cookies bersamaan dengan page tersebut

  

  Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya bersamaan dengan request

  Pokok Bahasan Konsep State pada PHP

  • Stateless - Statefull

  Cookies

  Session

Cara Kerja Cookies

   Saat browser meminta page, server dapat

  mengirim cookies bersamaan dengan page tersebut

  

  Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya bersamaan dengan request

  Pokok Bahasan Konsep State pada PHP

  • Stateless - Statefull

  Cookies

  Session

Serba-Serbi Cookies

  

  Mitos

  

  Cookies seperti virus yang bisa menghapus data di komputer kita Pokok Bahasan

  (salah)

  

  Cookies bisa mencuri informasi kita Konsep State pada

  (salah) PHP

  • Stateless

  

  Cookies digunakan untuk spam (salah)

  • Statefull

   Fakta 

  Cookies hanyalah data

  Cookies 

  Cookies biasanya anonim (tidak berisi Session informasi personal)

   Cookies bisa digunakan untuk melacak

  kebiasaan kita dalam melihat suatu

Serba-Serbi Cookies

  

  Apakah cookie berbahaya?

   Pada dasarnya tidak

  Pokok Bahasan

  

  Namun, cookie dapat digunakan untuk menyimpan informasi tentang pengguna Konsep State pada tanpa disadari oleh pengguna tersebut PHP

   Dengan kata lain, cookie dapat Digunakan

  • Stateless sebagai media untuk memata-‐matai
  • Statefull aktivitas pengguna, misalnya seberapa sering pengguna mengakses, kapan waktu

  Cookies

  aksesnya, link apa saja yang di-‐klik, dsb Session

  

  Untuk alasan tertentu, kita dapat mengaktifkan atau me-non-aftifkan penggunaan cookie pada web browser yang

Serba-Serbi Cookies

   Jika cookie “terpaksa” digunakan untuk

  menyimpan data yang bersifat personal (misal : alamat email, nomor telepon, dsb), gunakan enkripsi untuk melindungi data tersebut dari pihak yang tidak berwenang

  Pokok Bahasan Konsep State pada PHP

  • Stateless - Statefull

  Cookies

  Session

Jenis Cookies

   Session cookies : tipe default, cookie

  sementara yang hanya disimpan di memory browser Pokok Bahasan

  

  Ketika browser ditutup, cookies ini akan terhapus Konsep State pada

  

  Tidak bisa digunakan untuk melacak PHP informasi yang lama

  • Stateless

  

  Lebih aman, karena tidak ada program

  • Statefull yang bisa mengaksesnya (kecuali browser itu sendiri)

  Cookies 

  Persistent Cookies : cookies yang disimpan Session pada sebuah file yang ada di komputer browser

   Bisa melacak informasi yang bisa

  bertahan lama

Penyimpanan Cookies

  

  IE :

  

  C:\Documents and Pokok Bahasan

  Settings\administrator\Cookies

  

  Firefox Konsep State pada

   %APPDATA%\Mozilla\Firefox\???.defau

  PHP lt\cookies.txt

  • Stateless - Statefull

  

  Dimana ??? adalah karakter acak

  

  Chrome :

  Cookies  C:\Users\<User

  Name>\AppData\Local\Google\Chrome Session

  \User Data

Pengelolaan Cookies

   Cookie ditangani dengan superglobal array

  $_COOKIE

  

  Set cookies :

  • Stateless - Statefull

   Kalau tidak didefinisikan batas timeoutnya,

  maka secara default cookies akan dianggap session cookies

  Pokok Bahasan Konsep State pada PHP

  Cookies

  Session

Pengelolaan Cookies

  

  Menerima informasi cookies : Pokok Bahasan Konsep State pada PHP

  • Stateless - Statefull

  Cookies

  Session

  

  Gunakan isset untuk mengetahui apakah cookies yang diinginkan ada

Session

  

  Session adalah konsep abstrak yang merepresentasikan interaksi antara browser dan server

  Pokok Bahasan

  

  Beda session dan cookies

  

  Cookies adalah data yang disimpan di Konsep State pada client PHP

   Data session disimpan di server (1

  • Stateless session per user)
  • Statefull

  

  Session biasanya dibangun diatas cookies Cookies

  

  Setiap permintaan page, client mengirim

  Session

  cookie yang berisi session ID , dan server menggunakan session ID ini untuk mencari dan menerima data session -nya

Session

   Session merupakan kombinasi dari client-

  side session ID + server-side session data Pokok Bahasan 

  Client-side session ID dapat berupa parameter URL, cookie, atau HTTP request header

  Konsep State pada PHP

  

  Cara yang paling umum adalah

  • Stateless menggunakan cookie untuk menyimpan client-side session ID
  • Statefull

   Server-side session data dapat disimpan

  Cookies pada file maupun basis data

  

  Session dapat digunakan untuk menyimpan

  Session

  data berukuran sangat besar, sedangkan cookie hanya dapat menyimpan data berukuran kecil (karena dibatasi oleh web browser)

Cara Kerja Session

   Pertama-tama browser melakukan request

  ke server

  

  Pokok Bahasan Server mengetahui IP client, kemudian memberikan data session yang akan dikirim Konsep State pada lagi ke client dalam bentuk session ID PHP

   Untuk interaksi selanjutnya client mengirim

  • Stateless session ID tersebut ke server
  • Statefull

  

  Server menggunakan session ID ini untuk Cookies mendapatkan data client yang disimpan di database server

  Session

Pengelolaan Session

  

  Memulai session Pokok Bahasan

  

  Memberi nilai pada variabel session Konsep State pada PHP

  • Stateless - Statefull

  

  Membaca nilai dari variabel session Cookies

  Session

Pengelolaan Session

  

  Menghapus sebuah variabel session Pokok Bahasan Konsep State pada PHP

  • Stateless - Statefull

  

  Menghapus semua session pada pengguna Cookies tertentu

  Session

Pengelolaan Session - Start

   session_start() menandakan server

  menginginkan untuk memulai sesi dengan user Pokok Bahasan

  

  perintah ini harus di jalankan di awal Konsep State pada sebelum output diproduksi PHP

  

  Ketika kita memanggil session_start() maka:

  • Stateless

   Jika server tidak pernah berinteraksi

  • Statefull dengan user, maka akan dibuat session baru

  Cookies

  

  Jika user sudah pernah berintaksi, maka

  Session

  data session akan di simpan di assosiative array $_SESSION

  

  Kita dapat menyimpan data di

Pengelolaan Session - Saving

  

  Pada client, session disimpan sebagai cookies dengan nama PHPSESSID Pokok Bahasan

  

  Pada server, data session disimpan sebagai file temporary dengan nama acak Konsep State pada seperti /tmp/sess_fcc17f071 PHP

  • Stateless

  

  Kita bisa mencari atau mengubah folder

  • Statefull dimana session disimpan dengan menggunakan fungsi session_save_path

  Cookies

  

  Untuk aplikasi yang besar, session bisa disimpan di database (misalnya mysql)

  Session

Session Timeout

   Karena HTTP adalah stateless, maka akan

  sulit untuk menentukan apakah user sudah menyelesaikan sessionnya Pokok Bahasan

  

  Idealnya, user harus melakukan logout Konsep State pada untuk menyelesaikan session, tetapi PHP kebanyakan user jarang melakukannya

  • Stateless

  

  Browser akan secara otomatis menghapus

  • Statefull session ketika ditutup

  Cookies

   Server secara otomatis akan menghapus

  session setelah beberapa waktu tertentu

  Session

  ( bisa diset melalui setting PHP session_cache_expire )

   Session bisa dihapus secara paksa dengan

Latihan

  

  Buatlah sebuah halaman untuk melakukan login sederhana dengan menggunakan teknik session dan cookies, tanpa menggunakan database, definisi nilai session dan cookies langsung di kode PHPnya

  Latihan 

  Percantik halaman login yang kalian buat dengan menggunakan konsep desain yang baik plus CSS

  

  Halaman login ini harus bisa melakukan autentifikasi user, dengan input dasar username dan password dan dapat menampilkan halaman lain yang hanya bisa

Latihan

  

  Kumpulkan script HTML, PHP dan CSSnya dalam 1 folder dan kirimkan via email

  

  Deadline :

Kamis, 12 Maret 2015 jam 12.00

  Latihan siang

  

  Judul folder email :

  

PW-A-Kode_Tugas-NIM

  Contoh : Terimakasih dan Semoga

Bermanfaat ^^