Php mengatur cookie selama 1 minggu

Anda mungkin pernah mendengar tentang cookie, tetapi apa sebenarnya cookie itu, dan apa yang dapat kita lakukan dengannya? . Kami juga akan belajar cara bekerja dengan cookie di PHP

Tidak yakin apakah Anda memerlukan cookie atau variabel sesi? . Cookie adalah cara untuk menyimpan data tentang pengguna di komputer pengguna. Variabel sesi biasanya digunakan dalam aplikasi yang perlu melacak aktivitas pengguna. Cookie biasanya digunakan dalam aplikasi yang perlu menyimpan informasi tentang pengguna untuk satu situs

Anda juga dapat mempelajari tentang variabel sesi di postingan saya tentang penggunaan variabel sesi di PHP

  • Php mengatur cookie selama 1 minggu
    Php mengatur cookie selama 1 minggu
    Php mengatur cookie selama 1 minggu

    Cara Menggunakan Sesi dan Variabel Sesi di PHP

    Php mengatur cookie selama 1 minggu
    Php mengatur cookie selama 1 minggu
    Php mengatur cookie selama 1 minggu

    Sajal Soni

    16 Februari 2021

Mari kita mulai dengan definisinya

Kuki HTTP (juga disebut kuki web, kuki Internet, kuki peramban, atau sekadar kuki) adalah sepotong kecil data yang disimpan di komputer pengguna oleh peramban web saat menjelajahi situs web

Kami dapat menganggap cookie sebagai file teks, yang disimpan ke komputer Anda. Saat Anda meminta halaman web apa pun, server web mengirimkan respons halaman web itu ke browser Anda. Bersamaan dengan respons, server web juga dapat mengirimkan

setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
4 header HTTP yang meminta browser Anda untuk membuat file cookie di komputer Anda. Setelah cookie dibuat untuk situs web, server web selanjutnya dapat membaca dan menulis konten dari dan ke file ini

Cookie memiliki tanggal kedaluwarsa bersama dengan data cookie. Tanggal ini diatur agar browser dapat menghapus cookie lama saat tidak lagi dibutuhkan oleh server web. Jika tanggal kedaluwarsa kosong, cookie akan dihapus saat koneksi dengan server ditutup. Ini terjadi saat pengguna menutup jendela atau tab situs, atau saat pengguna menutup seluruh browser. Cookie ini, terkadang disebut cookie sesi, sebagian besar digunakan untuk menyimpan pengaturan sementara

Mari kita segera melihat seperti apa header HTTP

setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
5 dengan contoh berikut

1
Set-Cookie: LastVisitedSection=CodeTutsplus; expires=Fri, 31-Mar-2021 23:59:59 GMT; path=/; domain=.tutsplus.com

Dalam contoh di atas, server web meminta browser untuk membuat cookie

setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
6. Browser akan menyimpan
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
_7 sebagai data cookie. File cookie dapat menyimpan string teks atau angka hingga ukuran 4KB

Atribut

setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
8 digunakan untuk menentukan tanggal kedaluwarsa. Dan dengan demikian, cookie
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
_6 akan dihapus dari komputer Anda setelah tanggal
1
0. 31 Maret 2021 tengah malam

Atribut domain digunakan untuk menentukan domain di mana cookie akan aktif. Jika domainnya adalah

1
_1, cookie hanya akan dikirim ke server domain tersebut, dan jika domainnya adalah
1
2, cookie akan dikirim ke server mana pun dari salah satu subdomain Google, termasuk
1
3 itu sendiri. Dalam contoh kami, cookie
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
_6 akan tersedia untuk
1
5 dan juga salah satu subdomain dari
1
5

Jalur adalah jalur domain tempat cookie dikirim. Artinya, jika jalur disetel ke

1
_7, dan domain disetel ke
1
1, cookie hanya akan dikirim ke server jika browser meminta file dari
1
9. Jika jalur disetel ke
<?php
_0, cookie akan dikirim ke server terlepas dari lokasi file yang diminta di server. Dalam contoh kami, cookie
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
_6 akan dikirim ke semua halaman domain
1
5

Jadi begitulah cara server web membuat cookie di komputer Anda. Di bagian selanjutnya, kita akan membahas tujuan cookie

Apa Tujuan Cookies?

Protokol HTTP adalah protokol tanpa kewarganegaraan, yang berarti tidak ada cara bawaan agar server dapat mengingat pengguna tertentu di antara beberapa permintaan. Misalnya, ketika Anda mengakses halaman web, server hanya bertanggung jawab untuk menyediakan konten halaman yang diminta. Saat Anda mengakses halaman lain dari situs web yang sama, server web menginterpretasikan setiap permintaan secara terpisah, seolah-olah tidak terkait satu sama lain. Tidak ada cara bagi server untuk mengetahui bahwa setiap permintaan berasal dari pengguna yang sama

Sekarang, jika Anda ingin menerapkan fitur seperti login pengguna atau keranjang belanja, Anda harus mengidentifikasi apakah dua permintaan berasal dari browser yang sama. Ini tidak mungkin dengan protokol tanpa kewarganegaraan. Kami perlu mempertahankan status atau sesi di antara permintaan yang dibuat oleh browser untuk mengidentifikasi pengguna. Di situlah cookie datang untuk menyelamatkan

Cookie memungkinkan Anda berbagi informasi di berbagai halaman dari satu situs atau aplikasi—sehingga cookie membantu mempertahankan status. Ini memungkinkan server mengetahui bahwa semua permintaan berasal dari pengguna yang sama, sehingga memungkinkan situs untuk menampilkan informasi dan preferensi khusus pengguna

Diagram berikut menggambarkan bagaimana protokol HTTP bekerja dengan cookie

Php mengatur cookie selama 1 minggu
Php mengatur cookie selama 1 minggu
Php mengatur cookie selama 1 minggu

Di bagian ini, kita akan membahas bagaimana Anda dapat membuat cookie di PHP

Untuk membuat cookie di PHP, Anda perlu menggunakan fungsi

<?php
3. Mari kita lihat sintaks dasar yang digunakan untuk membuat cookie

1
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );

Daftar argumen dalam fungsi

<?php
_3 seharusnya tidak asing bagi Anda karena kami telah membahas sebagian besar parameter ini sebelumnya di artikel ini. Namun, ada dua argumen lagi,
<?php
5 dan
<?php
6, yang penting untuk dipahami

Jika Anda menyetel parameter

<?php
_5 ke
<?php
8, cookie hanya akan dibuat jika ada koneksi aman. Parameter
<?php
_6 memungkinkan Anda untuk membuat cookie HTTP saja, dan karenanya hanya dapat diakses melalui protokol HTTP. Cookie yang ditetapkan sebagai HTTP saja tidak dapat diakses oleh bahasa skrip seperti JavaScript

Jadi itu untuk sintaksnya — mari kita lihat contoh dunia nyata

1
<?php
2
setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);

Ini akan membuat cookie

setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
6 dengan nilai
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
7, dan akan kedaluwarsa dalam satu jam. Argumen jalur diatur ke
<?php
_0, sehingga akan dikirim ke semua halaman domain
1
5

Sekarang, mari kita lihat contoh berikut

1
<?php
2
Set-Cookie: LastVisitedSection=CodeTutsplus; expires=Fri, 31-Mar-2021 23:59:59 GMT; path=/; domain=.tutsplus.com
1

Karena kami telah menyetel argumen path ke

2
4, cookie
2
5 hanya akan dikirim jika browser meminta halaman dari
2
6

Dengan cara ini, Anda dapat membuat cookie di PHP. Hal terpenting untuk diingat, saat membuat cookie di PHP, adalah Anda harus menyetel semua cookie sebelum mengirim data apa pun ke browser. Cookie termasuk dalam header, jadi Anda harus selalu menginisialisasi cookie baru sebelum keluaran apa pun. Ini termasuk perintah

2
7 atau
2
8, dan tag
2
9 atau
setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
0

Membaca cookie di PHP sangatlah mudah. Anda perlu menggunakan variabel superglobal

setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
1 untuk membaca cookie yang tersedia. Faktanya, variabel
setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
_1 adalah larik yang berisi semua cookie

Mari kita lihat cuplikan berikut

1
<?php
2
Set-Cookie: LastVisitedSection=CodeTutsplus; expires=Fri, 31-Mar-2021 23:59:59 GMT; path=/; domain=.tutsplus.com
5________3______6
Set-Cookie: LastVisitedSection=CodeTutsplus; expires=Fri, 31-Mar-2021 23:59:59 GMT; path=/; domain=.tutsplus.com
7
Set-Cookie: LastVisitedSection=CodeTutsplus; expires=Fri, 31-Mar-2021 23:59:59 GMT; path=/; domain=.tutsplus.com
8
Set-Cookie: LastVisitedSection=CodeTutsplus; expires=Fri, 31-Mar-2021 23:59:59 GMT; path=/; domain=.tutsplus.com
9
1
0
1
1
1
2
1
3

Anda dapat menggunakan fungsi

setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
3 atau
setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
4 untuk memeriksa semua cookie yang tersedia untuk keperluan debugging

1
<?php
2
1
7

Sangat mudah untuk membaca cookie di PHP

Di bagian selanjutnya, kita akan melihat cara menghapus cookie

Akan menarik bagi Anda untuk mengetahui bahwa Anda juga dapat menggunakan fungsi

<?php
3 untuk menghapus cookie. Tangkapannya adalah Anda perlu menyetel tanggal kedaluwarsa di masa lalu, dan cookie kemudian akan dihapus

Mari kita lihat aksinya dalam contoh berikut

1
<?php
2
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
1
Set-Cookie: LastVisitedSection=CodeTutsplus; expires=Fri, 31-Mar-2021 23:59:59 GMT; path=/; domain=.tutsplus.com
6
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
3

Seperti yang Anda lihat, kami telah menentukan tanggal kedaluwarsa di masa lalu dengan menyetelnya ke

setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
6. Penting untuk diperhatikan bahwa kami juga telah menggunakan fungsi
setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
7 untuk menghapus cookie
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
6 dari variabel superglobal
setcookie("LastVisitedSection", "CodeTutsplus", time() + 3600, "/", "tutsplus.com", 1);
1 untuk memastikan bahwa cookie
setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false );
6 tidak dapat diakses nanti dalam kode

Sebagai penutup, saya ingin merangkum beberapa praktik terbaik

  • Jangan pernah memasukkan data sensitif ke dalam cookie. Klien dapat menjelajah di komputer umum, jadi jangan tinggalkan informasi pribadi apa pun
  • Jangan pernah mempercayai data yang berasal dari cookie. Selalu filter string dan angka. Komputer klien dapat mengubah cookie sesuka hati, sehingga penyerang dapat menulis data jahat ke cookie untuk melakukan sesuatu yang Anda tidak ingin layanan Anda lakukan
  • Coba perkirakan berapa lama cookie harus valid, dan tetapkan tanggal kedaluwarsa yang sesuai. Anda tidak ingin memonopoli komputer klien dengan cookie lama yang akan kedaluwarsa dalam seratus tahun
  • Selalu atur bendera
    1
    1 dan
    1
    2 jika memungkinkan. Jika aplikasi Anda tidak mengedit cookie dengan JavaScript, aktifkan
    1
    2. Jika Anda selalu memiliki koneksi HTTPS, aktifkan
    1
    1. Ini meningkatkan integritas dan kerahasiaan data

Kesimpulan

Hari ini, kita membahas dasar-dasar cookie dan cara menggunakannya di PHP. Topik terkait adalah sesi dan variabel sesi. Anda dapat mempelajari cara menggunakan sesi dan variabel sesi di PHP di sini di Envato Tuts+

Fungsi setcookie() PHP .
<. DOCTYPE html>
$nama_cookie = "pengguna";
jika(. isset($_COOKIE[$cookie_name])) { echo "Cookie bernama '". $ nama_kuki. "' tidak diatur. "; } kalau tidak {.
.
.
Anda dapat memperpanjang umur cookie di luar sesi browser saat ini dengan menyetel tanggal kedaluwarsa dan menyimpan tanggal kedaluwarsa di dalam cookie. Hal ini dapat dilakukan dengan menyetel atribut 'expires' ke tanggal dan waktu .

Bagaimana cara membuat kue selama 30 hari?

Salah satu cara untuk menyetelnya adalah dengan menambahkan jumlah detik sebelum cookie kedaluwarsa ke hasil waktu panggilan(). Misalnya, time()+60*60*24*30 akan menyetel cookie kedaluwarsa dalam 30 hari. Pilihan lainnya adalah dengan menggunakan fungsi mktime().
Tidak ada cara khusus untuk menyetel cookie persisten . Caranya sama seperti Anda menyetel cookie biasa. Cookie dengan tanggal kedaluwarsa disebut persisten.