Pemrograman Web PHP State, Session dan Cookies Adam Hendra Brata
4
Pokok Bahasan Konsep State pada PHP Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Stateless Statefull
Session Cookies
PHP State
PHP State - Stateless State = Keadaan
Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Website pada umumnya menggunakan protokol HTTP Pada dasarnya protokol HTTP memiliki sifat stateless
Pada interaksiyang bersifat stateless, maka antara suatu interaksi request-response dengan request-response lainnya bersifat independen, tidak memiliki keterkaitan satu sama lain Server HTTP tidak mengingat apa yang terjadi pada interaksi request-response yang terjadi Pada interaksi stateless, server HTTP tidak menyimpan state yang berhubungan dengan klien
PHP State - Stateless Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session Sistem langsung memberikan response kepada user dengan langsung memberikan halaman baru
PHP State - Statefull Stateful adalah kemampuan situs untuk mempertahankan state (keadaan)
Pokok Bahasan Konsep State pada PHP - Stateless - Statefull
Pada interaksi statefull, membuat sebuah website dapat menyimpan keadaan seorang user walaupun komunikasi data di jaringan tetap menggunakan HTTP
Cookies Destroy
Session Use Create
PHP State - Statefull Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session Sistem mengetahui keadaan user sekarang dan dapat “melanjutkan” halaman apa yang diminta oleh user daripada dia memberikan apa yang diminta user dengan langsung memberikan halaman baru
PHP State Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Penggunaan PHP State Bagaimana pengguna tetap logged-in ketika dia berpindah-pindah halaman ? Bagaimana keranjang belanja pengguna tetap tersimpan ketika pengguna tersebut melihat – lihat barang di halaman lain untuk ditambahkan ke keranjang belanja tersebut ?
PHP State Pokok Bahasan
PHP State dapat dibentuk menggunakan : Cookies Session
Konsep State pada PHP - Stateless - Statefull Cookies
Session
Create
Use
Destroy
Cookies
Cookies Cookie adalah file kecil yang diletakkan oleh server pada komputer pengguna
Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Cookie dikirim setiap kali pengguna mengakses web yang menjadi pemilik cookie tersebut, sehingga, ukuran cookie perlu diperhatikan supaya tidak membebani jaringan secara berlebihan Ketika kita mendefinisikan suatu cookie, maka kita menentukan berapa lama cookie tersebut valid. Jika telah melampaui waktu valid (expires), maka cookie tersebut akan dihapus
Cookies Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Cookies bisa digunakan untuk : Otentifikasi Melacak User Mempertahankan preferensi user, shopping chart dll
Data cookie berisi pasangan name/value yang dikirim melalui header dari request HTTP (Post/Get)
Cara Kerja Cookies Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Saat browser meminta page, server dapat mengirim cookies bersamaan dengan page tersebut Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya bersamaan dengan request
Cara Kerja Cookies Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Saat browser meminta page, server dapat mengirim cookies bersamaan dengan page tersebut Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya bersamaan dengan request
Serba-Serbi Cookies Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Mitos Cookies seperti virus yang bisa menghapus data di komputer kita (salah) Cookies bisa mencuri informasi kita (salah) Cookies digunakan untuk spam (salah) Fakta Cookies hanyalah data Cookies biasanya anonim (tidak berisi informasi personal) Cookies bisa digunakan untuk melacak kebiasaan kita dalam melihat suatu situs
Serba-Serbi Cookies Apakah cookie berbahaya? Pada dasarnya tidak
Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Namun, cookie dapat digunakan untuk menyimpan informasi tentang pengguna tanpa disadari oleh pengguna tersebut Dengan kata lain, cookie dapat Digunakan sebagai media untuk memata-‐matai aktivitas pengguna, misalnya seberapa sering pengguna mengakses, kapan waktu aksesnya, link apa saja yang di-‐klik, dsb
Untuk alasan tertentu, kita dapat mengaktifkan atau me-non-aftifkan penggunaan cookie pada web browser yang kita gunakan
Serba-Serbi Cookies Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
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
Jenis Cookies Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Session cookies : tipe default, cookie sementara yang hanya disimpan di memory browser Ketika browser ditutup, cookies ini akan terhapus Tidak bisa digunakan untuk melacak informasi yang lama Lebih aman, karena tidak ada program yang bisa mengaksesnya (kecuali browser itu sendiri) Persistent Cookies : cookies yang disimpan pada sebuah file yang ada di komputer browser Bisa melacak informasi yang bisa bertahan lama Berpotensial untuk tidak aman, sebab user / program, bisa membuka file tersebut atau mengubah isi cookies nya
Penyimpanan Cookies Pokok Bahasan
IE : C:\Documents and Settings\administrator\Cookies
Konsep State pada PHP - Stateless - Statefull
Firefox %APPDATA%\Mozilla\Firefox\???.defau lt\cookies.txt Dimana ??? adalah karakter acak
Cookies
Chrome : C:\Users\<User Name>\AppData\Local\Google\Chrome \User Data
Session
Pengelolaan Cookies Cookie ditangani dengan superglobal array $_COOKIE
Pokok Bahasan
Set cookies :
Konsep State pada PHP - Stateless - Statefull Cookies
Session Kalau tidak didefinisikan batas timeoutnya, maka secara default cookies akan dianggap session cookies
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 Session adalah konsep abstrak yang merepresentasikan interaksi antara browser dan server
Pokok Bahasan Konsep State pada PHP - Stateless - Statefull
Beda session dan cookies Cookies adalah data yang disimpan di client Data session disimpan di server (1 session per user)
Cookies
Session biasanya dibangun diatas cookies
Session
Setiap permintaan page, client mengirim cookie yang berisi session ID , dan server menggunakan session ID ini untuk mencari dan menerima data session -nya Data session ID ini bisa disimpan oleh browser dalam bentuk cookie
Session Session merupakan kombinasi dari clientside session ID + server-side session data
Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Client-side session ID dapat berupa parameter URL, cookie, atau HTTP request header Cara yang paling umum adalah menggunakan cookie untuk menyimpan client-side session ID Server-side session data dapat disimpan pada file maupun basis data
Session dapat digunakan untuk menyimpan 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 Konsep State pada PHP - Stateless - Statefull Cookies
Session
Server mengetahui IP client, kemudian memberikan data session yang akan dikirim lagi ke client dalam bentuk session ID Untuk interaksi selanjutnya client mengirim session ID tersebut ke server Server menggunakan session ID ini untuk mendapatkan data client yang disimpan di database server
Pengelolaan Session Memulai session
Pokok Bahasan
Memberi nilai pada variabel session
Konsep State pada PHP - Stateless - Statefull Cookies
Session
Membaca nilai dari variabel session
Pengelolaan Session Menghapus sebuah variabel session
Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Menghapus semua session pada pengguna tertentu
Pengelolaan Session - Start Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
session_start() menandakan server menginginkan untuk memulai sesi dengan user perintah ini harus di jalankan di awal sebelum output diproduksi
Ketika kita memanggil session_start() maka: Jika server tidak pernah berinteraksi dengan user, maka akan dibuat session baru Jika user sudah pernah berintaksi, maka data session akan di simpan di assosiative array $_SESSION Kita dapat menyimpan data di $_SESSION dan menerimanya kembali untuk digunakan lagi nantinya
Pengelolaan Session - Saving Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Pada client, session disimpan sebagai cookies dengan nama PHPSESSID Pada server, data session disimpan sebagai file temporary dengan nama acak seperti /tmp/sess_fcc17f071 Kita bisa mencari atau mengubah folder dimana session disimpan dengan menggunakan fungsi session_save_path Untuk aplikasi yang besar, session bisa disimpan di database (misalnya mysql)
Session Timeout Pokok Bahasan Konsep State pada PHP - Stateless - Statefull Cookies
Session
Karena HTTP adalah stateless, maka akan sulit untuk menentukan apakah user sudah menyelesaikan sessionnya Idealnya, user harus melakukan logout untuk menyelesaikan session, tetapi kebanyakan user jarang melakukannya Browser akan secara otomatis menghapus session ketika ditutup Server secara otomatis akan menghapus session setelah beberapa waktu tertentu ( bisa diset melalui setting PHP session_cache_expire ) Session bisa dihapus secara paksa dengan perintah session_destroy (biasanya dilakukan saat user logout)
Latihan
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 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 dibuka setelah login
Latihan Kumpulkan script HTML, PHP dan CSSnya dalam 1 folder dan kirimkan via email Deadline :
Latihan
Kamis, 12 Maret 2015 jam 12.00 siang Judul folder email : PW-A-Kode_Tugas-NIM Contoh :
PW-A-2-126060312111002
Terimakasih dan Semoga Bermanfaat ^^