modul 04 cookie dan session

9
35 COOKIE DAN SESSION A. TUJUAN Memahami konsep dasar cookie dan session di dalam pemrograman web. Memahami penggunaan cookie dan session. Mampu memanfaatkan cookie atau session untuk memproteksi halaman web. B. ALOKASI WAKTU C. PETUNJUK D. DASAR TEORI 1. Cookie Pada dasarnya cookie merupakan mekanisme untuk meletakkan data pada remote browser sehingga memudahkan penelusuran atau identifikasi user. Dapat juga dikatakan bahwa cookie merupakan informasi dalam bentuk teks yang dipertukarkan oleh client dan server, di mana pembuat cookie adalah pihak server. 2. Session Pada kenyataannya, penggunaan cookie memiliki beberapa masalah atau kendala. Bisa jadi ada browser yang tidak menerima cookie, serta kemungkinan adanya user yang men-disable cookie. Permasalahan ini merupakan salah satu alasan session PHP menggunakan method cookie/URL ganda. Tidak seperti cookie, session tersimpan di server. Dengan demikian, client tidak memiliki akses untuk mendapatkan informasi session. Awali setiap aktivitas dengan do'a, semoga berkah dan mendapat kemudahan. Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar. Kerjakan tugas-tugas praktikum dengan baik, sabar, dan jujur. Tanyakan kepada asisten/dosen apabila ada hal-hal yang kurang jelas. Modul Praktikum Pemrograman Web (PHP) MODUL IV 3 JS (3 x 50 menit) Jurusan Teknik Elektro FT UM

Upload: arif-ayip

Post on 04-Jul-2015

369 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Modul 04 Cookie Dan Session

35

COOKIE DAN SESSION

A. TUJUAN

� Memahami konsep dasar cookie dan session di dalam pemrograman web. � Memahami penggunaan cookie dan session. � Mampu memanfaatkan cookie atau session untuk memproteksi halaman

web.

B. ALOKASI WAKTU

C. PETUNJUK

D. DASAR TEORI

1. Cookie

Pada dasarnya cookie merupakan mekanisme untuk meletakkan data pada remote browser sehingga memudahkan penelusuran atau identifikasi user. Dapat juga dikatakan bahwa cookie merupakan informasi dalam bentuk teks yang dipertukarkan oleh client dan server, di mana pembuat cookie adalah pihak server.

2. Session

Pada kenyataannya, penggunaan cookie memiliki beberapa masalah atau kendala. Bisa jadi ada browser yang tidak menerima cookie, serta kemungkinan adanya user yang men-disable cookie. Permasalahan ini merupakan salah satu alasan session PHP menggunakan method cookie/URL ganda.

Tidak seperti cookie, session tersimpan di server. Dengan demikian, client tidak memiliki akses untuk mendapatkan informasi session.

� Awali setiap aktivitas dengan do'a, semoga berkah dan mendapat kemudahan. � Pahami tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar. � Kerjakan tugas-tugas praktikum dengan baik, sabar, dan jujur. � Tanyakan kepada asisten/dosen apabila ada hal-hal yang kurang jelas.

Modul Praktikum Pemrograman Web (PHP)

MODUL IV

3 JS (3 x 50 menit)

Jurusan Teknik Elektro FT UM

Page 2: Modul 04 Cookie Dan Session

36

E. LATIHAN

1. Menggunakan Cookie

Untuk dapat memanfaatkan cookie di dalam aplikasi, kita perlu memahami operasi-operasi dasar penggunaan cookie.

� Menciptakan dan Mengakses Cookie

PHP menyediakan fungsi set cooki e( ) yang digunakan untuk menetapkan nilai cookie. Adapun untuk mendapatkan nilai cookie, kita memanfaatkan variabel superglobal $_COOKI E.

<! DOCTYPE ht ml PUBLI C " - / / W3C/ / DTD XHTML 1. 0 Tr ansi t i onal / / EN" " ht t p: / / www. w3. or g/ TR/ xht ml 1/ DTD/ xht ml 1- t r ansi t i onal . dt d" > <ht ml xml ns=" ht t p: / / www. w3. or g/ 1999/ xht ml " xml : l ang=" en" l ang=" en" > <head> <t i t l e>Set Cooki e</ t i t l e> </ head> <body> <?php // Men-set nilai cookie set cooki e( ' nama_cooki e' , ' ni l ai _cooki e' ) ; // Mendapatkan nilai cookie echo $_COOKI E[ ' nama_cooki e' ] ; ?> <p> Tekan Ref r esh ( F5) ; </ body> </ ht ml >

Fungsi set cooki e( ) sebenarnya menyediakan enam parameter opsional, namun seringnya hanya tiga yang digunakan.

set cooki e ( st r i ng name [ , st r i ng val ue [ , i nt expi r e ] ] )

� Memeriksa Dukungan Cookie

Implementasi cookie sangat bergantung pada dukungan browser. Terkait hal ini, kita bisa melakukan pemeriksaan guna memastikan bahwa cookie diaktifkan atau tidak.

<! DOCTYPE ht ml PUBLI C " - / / W3C/ / DTD XHTML 1. 0 Tr ansi t i onal / / EN" " ht t p: / / www. w3. or g/ TR/ xht ml 1/ DTD/ xht ml 1- t r ansi t i onal . dt d" > <ht ml xml ns=" ht t p: / / www. w3. or g/ 1999/ xht ml " xml : l ang=" en" l ang=" en" > <head>

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM

Page 3: Modul 04 Cookie Dan Session

37

<t i t l e>Cek Dukungan Cooki e</ t i t l e> </ head> <body> <?php i f ( i sset ( $_GET[ ' q' ] ) && $_GET[ ' q' ] == 1) { i f ( i sset ( $_COOKI E[ ' t est ' ] ) ) { echo ' suppor t ' ; } el se { echo ' t i dak suppor t ' ; } } el se { set cooki e( ' t est ' , ' val ue' ) ; $sel f = $_SERVER[ ' PHP_SELF' ] ; / / Redi r eksi ke cur r ent scr i pt header ( ' Locat i on: ' . $sel f . ' ?q=1' ) ; exi t ; } ?> <p> Tekan Ref r esh ( F5) ; </ body> </ ht ml >

Untuk menguji kode program, coba disable dukungan cookie pada browser, kemudian tekan Refresh.

� Menghapus Cookie

Penghapusan cookie dilakukan dengan cara mengirimkan nama cookie sama tetapi nilainya kosong. Untuk langkah yang lebih baik, tambahkan argumen opsional dengan nilai waktu yang telah lewat.

<! DOCTYPE ht ml PUBLI C " - / / W3C/ / DTD XHTML 1. 0 Tr ansi t i onal / / EN" " ht t p: / / www. w3. or g/ TR/ xht ml 1/ DTD/ xht ml 1- t r ansi t i onal . dt d" > <ht ml xml ns=" ht t p: / / www. w3. or g/ 1999/ xht ml " xml : l ang=" en" l ang=" en" > <head> <t i t l e>Hapus Cooki e</ t i t l e> </ head> <body> <?php set cooki e( ' nama_cooki e' , ' ni l ai _cooki e' ) ; i f ( i sset ( $_COOKI E[ ' nama_cooki e' ] ) ) { echo ' cooki e di - set <br / >' ;

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM

Page 4: Modul 04 Cookie Dan Session

38

/ / Menghapus cooki e, dengan masa ber l aku 3 j am yang l al u set cooki e( ' nama_cooki e' , ' ' , t i me( ) - 3 * 3600) ; echo ' cooki e di hapus' ; } el se { echo ' unset ' ; } ?> <p> Tekan Ref r esh ( F5) ; </ body> </ ht ml >

2. Menggunakan Session

Untuk memudahkan penggunaan session lebih lanjut, bagian ini akan menjelaskan beberapa operasi dasar pada session.

� Menciptakan dan Mengakses Session

PHP menyediakan fungsi sessi on_st ar t ( ) yang harus selalu dipanggil sebelum kita dapat menetapkan maupun mengakses variabel session. Adapun untuk menetapkan nilai variabel session, kita menggunakan superglobal $_SESSI ON.

<! DOCTYPE ht ml PUBLI C " - / / W3C/ / DTD XHTML 1. 0 Tr ansi t i onal / / EN" " ht t p: / / www. w3. or g/ TR/ xht ml 1/ DTD/ xht ml 1- t r ansi t i onal . dt d" > <ht ml xml ns=" ht t p: / / www. w3. or g/ 1999/ xht ml " xml : l ang=" en" l ang=" en" > <head> <t i t l e>Set Sessi on</ t i t l e> </ head> <body> <?php // Inisialisasi data session sessi on_st ar t ( ) ; // Set session jika belum ada i f ( ! i sset ( $_SESSI ON[ ' t est ' ] ) ) { $_SESSI ON[ ' t est ' ] = ' val ue' ; } el se { echo ' Sessi on di - set <br / >' ; // Mencetak nilai session test echo ' Ni l ai : ' . $_SESSI ON[ ' t est ' ] . ' <br / >' ; // Mencetak semua elemen session pr i nt _r ( $_SESSI ON) ; } ?>

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM

Page 5: Modul 04 Cookie Dan Session

39

<p> Tekan Ref r esh ( F5) ; </ body> </ ht ml >

� Menghapus Session

Untuk menghapus data session, Anda bisa menggunakan konstruksi bahasa unset ( ) atau fungsi sessi on_dest r oy( ) .

<! DOCTYPE ht ml PUBLI C " - / / W3C/ / DTD XHTML 1. 0 Tr ansi t i onal / / EN" " ht t p: / / www. w3. or g/ TR/ xht ml 1/ DTD/ xht ml 1- t r ansi t i onal . dt d" > <ht ml xml ns=" ht t p: / / www. w3. or g/ 1999/ xht ml " xml : l ang=" en" l ang=" en" > <head> <t i t l e>Hapus Sessi on</ t i t l e> </ head> <body> <?php / / I ni s i al i sasi dat a sessi on sessi on_st ar t ( ) ; / / Set sessi on j i ka bel um ada i f ( i sset ( $_SESSI ON[ ' t est ' ] ) ) { / / Hapus sessi on t est unset ( $_SESSI ON[ ' t est ' ] ) ; echo ' sessi on di hapus' ; } el se { echo ' unset ' ; / / Mencet ak semua el emen sessi on pr i nt _r ( $_SESSI ON) ; } ?> <p> Tekan Ref r esh ( F5) ; </ body> </ ht ml >

Jika Anda hanya ingin menghapus data session tertentu, gunakan unset ( ) . Sementara itu, untuk menghapus semua data session, gunakan sessi on_dest r oy( ) .

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM

Page 6: Modul 04 Cookie Dan Session

40

3. Autentikasi Halaman

Salah satu bentuk aplikasi yang sangat memerlukan cookie/session adalah halaman autentikasi. Pada prinsipnya, autentikasi digunakan untuk memproteksi halaman-halaman sensitif.

Untuk mengetahui lebih detail mengenai halaman autentikasi, ikuti langkah-langkah berikut:

1. Buat folder khusus, misalnya autentikasi_cookie.

2. Buat kode untuk halaman index.php.

<! DOCTYPE ht ml PUBLI C " - / / W3C/ / DTD XHTML 1. 0 Tr ansi t i onal / / EN" " ht t p: / / www. w3. or g/ TR/ xht ml 1/ DTD/ xht ml 1- t r ansi t i onal . dt d" > <ht ml xml ns=" ht t p: / / www. w3. or g/ 1999/ xht ml " xml : l ang=" en" l ang=" en" > <head> <t i t l e>Hal aman Admi ni st r at or </ t i t l e> <st y l e t ype=" t ext / css" > . i nner { mar gi n: 200px aut o; paddi ng: 20px; wi dt h: 240px; bor der : 1px sol i d #333; } </ st y l e> </ head> <body> <?php i ni _set ( ' di spl ay_er r or s ' , 1) ; def i ne( ' _VALI D' , 1) ; / / i ncl ude f i l e ekst er nal r equi r e_once( ' . / aut h. php' ) ; i ni t _l ogi n( ) ; val i dat e( ) ; ?> <h3>Si mul asi Hal aman Admi n</ h3> <p> <a hr ef =" ?m=l ogout " >Logout </ a> <p> Menu- menu admi n ada di s i ni </ body> </ ht ml >

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM

Page 7: Modul 04 Cookie Dan Session

41

3. Buat kode untuk autentikasi dan simpan dengan nama auth.php misalnya.

<?php def i ned( ' _VALI D' ) or di e( ' not al l owed' ) ; f unct i on i ni t _l ogi n( ) { / / Si mul asi dat a account nama dan passwor d $nama = ' admi n' ; $pass = ' admi n' ; i f ( i sset ( $_POST[ ' nama' ] ) && i sset ( $_POST[ ' pass' ] ) ) { $n = t r i m( $_POST[ ' nama' ] ) ; $p = t r i m( $_POST[ ' pass' ] ) ; i f ( ( $n === $nama) && ( $p === $pass) ) { / / J i ka sama, set cooki e set cooki e( ' nl ogi n' , $n) ; set cooki e( ' t i me' , t i me( ) ) ; / / r edi r eksi ?> <scr i pt t ype=" t ext / j avascr i pt " > document . l ocat i on. hr ef =" . / " ; </ scr i pt > <?php } el se { echo ' Nama/ Passwor d Ti dak Sesuai ' ; r et ur n f al se; } } } f unct i on val i dat e( ) { i f ( ! i sset ( $_COOKI E[ ' nl ogi n' ] ) | | ! i sset ( $_COOKI E[ ' t i me' ] ) ) { ?> <di v c l ass=" i nner " > <f or m act i on=" " met hod=" post " > <t abl e bor der =0 cel l paddi ng=5> <t r > <t d>Nama</ t d> <t d><i nput t ype=" t ext " name=" nama" / ></ t d> </ t r > <t r > <t d>Passwor d</ t d> <t d><i nput t ype=" passwor d" name=" pass" / ></ t d> </ t r > <t r > <t d></ t d> <t d><i nput t ype=" submi t " val ue=" LOGI N" / ></ t d> </ t r > </ t abl e> </ f or m> </ di v> <?php exi t ; } i f ( i sset ( $_GET[ ' m' ] ) && $_GET[ ' m' ] == ' l ogout ' ) { / / Hapus cooki e i f ( i sset ( $_COOKI E[ ' nl ogi n' ] ) ) { set cooki e( ' nl ogi n' , ' ' , t i me( ) - 3 * 3600) ; } i f ( i sset ( $_COOKI E[ ' t i me' ] ) ) { set cooki e( ' t i me' , ' ' , t i me( ) - 3 * 3600) ; }

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM

Page 8: Modul 04 Cookie Dan Session

42

/ / r edi r eksi hal aman ?> <scr i pt t ype=" t ext / j avascr i pt " > document . l ocat i on. hr ef =" . / " ; </ scr i pt > <?php } } ?>

4. Jalankan halaman index atau browse direktorinya.

Gambar 1. Halaman login

Begitu login berhasil, akan muncul halaman utama administrator seperti terlihat pada Gambar 2.

Gambar 2. Halaman administrator

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM

Page 9: Modul 04 Cookie Dan Session

43

F. TUGAS PRAKTIKUM

1. Buat halaman autentikasi dengan menggunakan session.

Modul Praktikum Pemrograman Web (PHP)

Jurusan Teknik Elektro FT UM