Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menetapkan kitaran hayat kuki PHP

Bagaimana untuk menetapkan kitaran hayat kuki PHP

PHPz
PHPzasal
2023-03-29 10:11:29617semak imbas

Dalam pembangunan tapak web, kuki ialah bentuk storan data yang sangat biasa digunakan. Kuki ialah fail teks yang terdiri daripada nama, nilai dan atribut pilihan lain yang boleh disimpan pada komputer pengguna. Antaranya, salah satu atribut yang paling penting ialah menentukan kitaran hayat kuki (tamat tempoh), iaitu, berapa lama kuki disimpan pada komputer klien. Dalam PHP, anda boleh menggunakan fungsi setcookie() untuk menetapkan kuki, termasuk menetapkan nama kuki, nilai, masa tamat tempoh dan atribut lain. Di bawah, artikel ini akan memperkenalkan secara terperinci cara menetapkan kitaran hayat kuki dalam PHP.

1. fungsi setcookie()

Fungsi setcookie() ialah fungsi yang digunakan untuk menetapkan kuki dalam PHP Sintaksnya adalah seperti berikut:

setcookie(nama,nilai. , expire,path,domain,secure,httponly);

Antaranya, maksud parameter adalah seperti berikut:

  • nama: nama kuki, yang mesti ditetapkan.
  • nilai: Nilai kuki, yang boleh kosong.
  • tamat tempoh: kitaran hayat kuki, dinyatakan dalam bentuk cap waktu Unix.
  • laluan: Tentukan laluan di mana kuki itu sah. Lalai adalah sah di bawah keseluruhan nama domain.
  • domain: Tentukan nama domain yang mana kuki itu sah. Lalai ialah nama domain semasa.
  • selamat: Sama ada untuk menghantar kuki ini hanya melalui protokol HTTPS, 0 atau 1, lalai ialah 0.
  • httponly: Sama ada untuk mengehadkan kuki ini untuk hanya diakses melalui protokol HTTP atau HTTPS, 0 atau 1, lalai ialah 0.

Antaranya, parameter tamat tempoh ialah fokus.

2. Kitaran hayat kuki

Kitaran hayat kuki boleh difahami sebagai tempoh sah kuki pada komputer pelanggan. Dalam PHP, kita boleh menggunakan parameter tamat tempoh untuk menentukan kitaran hayat kuki pada komputer klien. Nilai parameter tamat tempoh ialah nilai integer yang diwakili sebagai cap waktu Unix. Cap masa ialah bilangan saat berbanding 00:00:00GMT pada 1 Januari 1970, jadi kita boleh mendapatkan masa tamat tempoh melalui pengiraan.

Sekarang, mari kita lihat satu contoh. Sebagai contoh, kami ingin menetapkan kuki bernama "mycookie" dan membuatnya tamat tempoh 60 minit dari masa semasa. Kemudian anda boleh melakukan ini:

$expire=time()+60*60; //设置生命周期为60分钟
setcookie("mycookie", "test", $expire);

Dalam contoh ini, kita mula-mula mendapat cap masa masa semasa (dilaksanakan dengan fungsi time()), dan kemudian menambah 60 minit (iaitu 3600 saat) untuk mendapatkan Cap masa selepas 60 minit. Akhir sekali, kami menghantar cap masa ini kepada parameter ketiga $expire fungsi setcookie(), dengan itu menyatakan bahawa kitaran hayat "mycookie" ialah 60 minit.

Jika kita tidak mahu menetapkan masa tamat tempoh, iaitu, biarkan kuki dipadamkan secara automatik apabila penyemak imbas ditutup, maka parameter tamat tempoh boleh ditetapkan kepada 0, seperti yang ditunjukkan di bawah:

setcookie("mycookie", "test", 0);

Selain itu, jika kita mahu memadamkan kuki dengan segera, kita boleh menetapkan kitaran hayatnya kepada cap masa yang lalu, seperti yang ditunjukkan di bawah:

setcookie("mycookie", "", time()-3600);

Dalam contoh ini, kita menetapkan kitaran hayat daripada "mycookie" kepada 60 minit semasa sebelum masa, ini akan memadamkan kuki serta-merta.

3. Aplikasi Praktikal

Dalam aplikasi praktikal, kita boleh menetapkan kitaran hayat kuki mengikut keperluan khusus. Sebagai contoh, jika kita ingin mengingati status log masuk pengguna, kita boleh menyimpan nama pengguna dan kata laluan apabila pengguna log masuk ke kuki, dan menetapkan kitaran hayat kepada beberapa hari, beberapa jam, beberapa minit. , dsb. Dengan cara ini, walaupun pengguna menutup pelayar atau memulakan semula komputer, pengguna tidak perlu log masuk semula selagi kuki belum tamat tempoh.

Sekarang, mari kita lihat contoh praktikal. Katakan kita mempunyai halaman log masuk Selepas pengguna memasukkan nama pengguna dan kata laluan, dia boleh menyemak pilihan "Ingat Kata Laluan" Jika ditandakan, nama pengguna dan kata laluan akan disimpan dalam kuki supaya pengguna tidak perlu lagi. masukkannya apabila mereka log masuk seterusnya. Nama pengguna dan kata laluan. Kod pelaksanaan khusus adalah seperti berikut:

<?php
if(isset($_POST[&#39;username&#39;]) && isset($_POST[&#39;password&#39;])){
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];
    if(isset($_POST[&#39;remember&#39;])){
        //如果勾选“记住密码”,则设置cookie生命周期为7天
        setcookie(&#39;username&#39;, $username, time()+3600*24*7);
        setcookie(&#39;password&#39;, $password, time()+3600*24*7);
    }else{
        //如果未勾选“记住密码”,则不设置生命周期,即在浏览器关闭时自动删除cookie
        setcookie(&#39;username&#39;, $username);
        setcookie(&#39;password&#39;, $password);
    }
    //进行登录验证,此处省略......
}
?>

<form method="post" action="">
    <label>用户名:<input type="text" name="username"></label><br>
    <label>密码:<input type="password" name="password"></label><br>
    <label><input type="checkbox" name="remember">记住密码</label><br>
    <input type="submit" value="登录">
</form>

Dalam contoh ini, jika pengguna menyemak pilihan "Ingat Kata Laluan", nama pengguna dan kata laluan disimpan dalam kuki dan kitaran hayat ditetapkan kepada 7 langit. Jika pengguna tidak menyemak pilihan "Ingat Kata Laluan", tiada kitaran hayat ditetapkan, iaitu, kuki dipadamkan secara automatik apabila penyemak imbas ditutup. Dengan cara ini, pada kali seterusnya pengguna membuka halaman log masuk, mereka boleh melihat nama pengguna dan kata laluan yang disimpan semasa log masuk terakhir (jika kuki belum tamat tempoh), memudahkan pengguna untuk log masuk dengan cepat.

4. Ringkasan

Dalam PHP, kitaran hayat kuki boleh ditetapkan dengan mudah melalui fungsi setcookie(). Kami boleh menetapkan kitaran hayat kuki mengikut keperluan khusus untuk mencapai pelbagai keperluan storan data, seperti mengingat status log masuk pengguna, menyimpan pilihan pengguna, dsb. Pada masa yang sama, kita juga perlu memberi perhatian kepada pengiraan berdasarkan cap masa semasa menetapkan kitaran hayat kuki untuk memastikan kitaran hayat yang betul ditetapkan.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan kitaran hayat kuki PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn