Cara menggunakan cookie di PHP

Selamat datang di warung belajar, dalam tutorial ini kita akan melanjutkan pembahasan mengenai seri tutorial PHP, Pada part 46 kita akan belajar mengenai cara menggunakan cookie di PHP.

Cookie merupakan sebuah file text yang berisi data tertentu yang disimpan didalam browser.

Secara sederhana peran cookie ini hampir mirip dengan session, hanya saja kalau session itu disimpan di server, tapi kalau cookie ini disimpan di browser, untuk pembahasan session bisa dibaca di tutorial kita sebelumnya : cara menggunakan session di PHP

 

Perbedaan  Cookie dan Session

Sebelum kita membahas lebih detail mengenai cookie, kita akan bahas dulu apa perbedaan dari cookie dan session, perbedaannya antara lain :

Cookie

  1. Cookie disimpan di sisi klien, lebih tepatnya di browser dari pengguna aplikasi
  2. Penggunaan Cookie tidak aman bagian klien, karena cookie disimpan di sisi klien (browser) sehingga memungkinkan klien (pengguna aplikasi) dapat menghapus mengedit serta melakukan disabled pada cookie.
  3. Data yang disimpan di dalam cookie dapat disimpan lebih lama, karena waktu expired dari cookie dapat diatur.

Session

  1. Session disimpan disisi server
  2. Penyimpan data melalui session lebih aman karena data disimpan di sisi server, tidak seperti cookie yang datanya dimasukkan di sisi klien (browser)
  3. Data Session otomatis terhapus ketika web browser klien dimatikan (diclose), selain itu data session tidak dapat diatur waktu expired.

 

Contoh dari penggunaan Cookie 

Coba perhatikan login pada facebook, atau web – web lain, biasanya terdapat checklist untuk mengingat password ( Remember Me ), nah jika ada menchecklist bagian itu, informasi akun anda akan disimpan di cookie browser, sehingga ketika anda membuka web tersebut akan otomatis melakukan login, meskipun browser sudah diclose sebelumnya.

Berbeda halnya jika anda tidak menchecklist bagian remember me, informasi akun anda hanya disimpan session, sehingga ketika browser di close dan anda masuk ke browser ulang untuk mengakses web, maka anda diharuskan untuk login ulang, karena data yang disimpan di session otomatis di hapus ketika browser pengguna (client) di tutup.

Bagimana sudah paham tentang peran dari cookie ?

Jika sudah paham kita lanjut ke pembahasan dari cookie.

 

Membuat Cookie di PHP

Untuk membuat cookie di php, anda perlu menggunakan fungsi setcookie(), fungsi ini memiliki 6 argumen antara lain :

  1. Nama Cookie : berisi nama dari cookie
  2. Nilai Cookie : berisi nilai yang akan disimpan, sesuai nama cookie yang sudah ditulis di argumen pertama
  3. Expire Time : berisi kapan waktu cookie berakhir, format waktu ini dapat berupa Unix Timestamp, sehingga anda dapat menggunakan fungsi time() di php, jika nilai expire dikosongkan atau bernilai 0, maka data cookie akan expire / dihapus ketika browser di tutup (sama seperti konsep session)
  4. Path . Berisi Path / Lokasi server dimana cookie dapat digunakan, jika bagian path diisi tanda slash ‘/’, maka cookie dapat diakses diseluruh bagian website.
    • Bagian path juga dapat diisi direktori tertentu semisal ‘/store/’, maka cookie hanya dapat digunakan direktori store dan subdirektorinya, semisal ‘/store/cart/’
    • Anda juga dapat mengkosongkan nilai dari path, jika dikosongkan maka lokasi akan merujuk ke direktori dimana cookie tersebut dibuat.
  5. Domain dapat diisi subdomain yang dapat menggungkan cookie tersebut.
    • Semisal kita mengisikan ‘warungbelajar.com’, maka cookie dapat digunakan pada subdomain dari ‘warungbelajar.com’ seperti blog.warungbelajar.com, store.warungbelajar.com dll.
    • Semisal kita mengisikan ‘www.warungbelajar.com’ maka cookie dapat digunakan pada subdomain ‘www.warungbelajar.com’ seperti ‘v2.www.warungbelajar.com’ dll
    • Jika anda mengkosongkan bagian ini, maka cookie dapat digunakan pada seluruh bagian domain, tetapi tidak dapat digunakan di subdomain.
  6. Secure : Secara Default akan bernilai false, jika anda mengganti nilainya menjadi true, maka browser akan mengirimkan cookie ke webserver hanya jika koneksinya https
  7. HttpOnly : Secara Default akan bernilai false, Cookie hanya dapat diakses melalui protokol http

 

7 Argumen diatas seluruhnya tidak harus kita set saat menggunakan fungsi setcookie, biasanya yang digunakan adalah 4 argumen pertama, untuk argumen ke – 5 (Domain) anda diharuskan menuliskan isinya dengan tanda dot (.), sehingga anda tidak bisa menggunakan nilai localhost untuk argumen ke – 5.

Baik kita akan coba membuat perintah cookie, silahkan buat file dengan nama set_cookie.php, lalu isinya adalah seperti berikut ini :

Keterangan :

  • Coba Jalankan skrip di file set_cookie.php
  • Baris 2 digunakan untuk membuat cookie dengan nama username, dengan nilai ‘administrator’ dengan waktu expire cookie selama 5 hari, dan dapat diakses diseluruh path dari dari direktori tempat menyimpan file php disimpan.
  • Baris 3 digunakan untuk membuat cookie dengan nama nama, dengan nilai ‘Budi Nurcahya’ dengan waktu expire cookie selama 15 hari, dan dapat diakses diseluruh path dari dari direktori tempat menyimpan file php disimpan.

 

Perhitungan Waktu Expire Cookie

Perhitungan expire cookie pada baris code 2, (60 * 60 * 24 * 5) :

  • 60 pertama adalah jumlah 60 detik yang artinya 1 menit
  • 60 kedua adalah 60 menit yang artinya 1 jam
  • 24 artinya 1 jam x 24 jadi hasilnya 24 jam atau 1 hari
  • 5 artinya 24 jam x 5 jadi hasilnya 5 hari

 

Melihat Nilai Cookie di Browser

setelah anda menjalankan skrip di file set_cookie.php diatas maka akan otomatis akan melakukan generate data cookie, anda dapat melihat nilai dari cookie tersebut, langkah – langkahnya adalah sebagai berikut :

  1. Klik kanan pada browser → inspect.. atau bisa menekan tombol F12 (Windows)
  2. Masuk ke menu Application
  3. Masuk ke bagian cookie
  4. Silahkan pilih alamat yang menyimpan cookie

Keterangan :

  • Terlihat nama cookie dan value juga.

 

Membaca Data Cookie

Untuk dapat membaca data cookie gunakan variabel bawaan PHP yaitu $_COOKIE, variabel tersebut dapat diakses meskipun tidak terdapat cookie, hanya saja nilainya akan kosong jika belum ada cookie yang diset.

Kita akan membuat sebuah file php semisal namanya adalah get_cookie.php, dengan isi skrip sebagai berikut :

Jika skrip tersebut dijalankan maka akan menampilkan seperti berikut :

Keterangan :

  • Baris 2 kita menuliskan $_COOKIE[‘username’] yang artinya kita menampilkan nilai dari cookie dengan nama “username”, dalam hal ini nilainya adalah administrator
  • Baris 3 kita menuliskan $_COOKIE[‘nama’] yang artinya kita menampilkan nilai dari cookie dengan nama “nama”, dalam hal ini nilainya adalah Budi Nurcahya

 

Setelah anda tahu bahwa data cookie itu disimpan dan dapat diakses melalui variabel $_COOKIE, tetapi anda harus juga mengetahui bahwa data cookie tidak dapat langsung diakses sesaat cookie tersebut diset, sebagai contoh perhatikan file berikut ini, semisal kita membuat file dengan nama set_get_cookie.php isi codenya sebagai berikut :

File tersebut jika dijalankan akan menampilkan pesan error seperti berikut :

Keterangan :

  • Keterangan error yang ditampilkan adalah tidak ditemukannya cookie dengan nama user_level
  • Kenapa hal tersebut bisa terjadi, padahal dibaris sebelumnya kita telah menset cookie dengan nama user_level dengan nilainya adalah administrator ?
  • Hal tersebut dikarenakan kita menset cookie dan get data cookie dilakukan dalam satu file, dan dilakukan secara bersamaan, dalam file set_get_cookie.php
  • Jadi Set Cookie harus dilakukan terlebih dahulu untuk dibuatkan file cookie di browser, setelah data cookie baru bisa diakses.

 

Menghapus data cookie

Untuk menghapus data cookie anda dapat melakukannya dengan memberikan nilai kosong pada nama cookie yang anda ingin hapus.

Contohnya seperti berikut :

Jika saat membuat cookie anda memberikan argumen lain selain nama dan nilai cookie, contohnya memberikan waktu expire cookie, atau path dari domain, maka untuk menghapus cookie anda diharuskan menyertakan argumen tersebut.

Semisal saat kita set cookie codenya seperti berikut ini :

Maka untuk menghapus anda dapat menggunakan code seperti berikut ini :

 

Baik kurang lebih seperti itu teman – teman pembahasan mengenai cara menggunakan cookie di PHP, jika ada yang ingin didiskusikan silahkan di kolom komentar, sekian dulu sampai jumpa di tutorial selanjutnya.

Leave a Comment

Your email address will not be published.