Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Nilai Kuki Saya Hilang Selepas Menggunakan `setcookie()` dalam PHP?

Mengapa Nilai Kuki Saya Hilang Selepas Menggunakan `setcookie()` dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-14 11:12:12
asal
819 orang telah melayarinya

Why is My Cookie Value Missing After Using `setcookie()` in PHP?

Memahami Kebolehcapaian Kuki

Isu: Ketiadaan Nilai Kuki yang Tidak Dijangka selepas setcookie()

Dalam PHP, menggunakan $_COOKIE untuk mendapatkan nilai a kuki yang baru dibuat sejurus selepas memanggil setcookie() boleh mengakibatkan nilai yang diingini tidak tersedia. Fenomena ini timbul daripada sifat tak segerak pengendalian kuki HTTP.

A Tale of Time: Interaksi Pelanggan dan Pelayan

Apabila setcookie() digunakan, skrip PHP mengeluarkan arahan untuk mencipta kuki dan masukkannya dalam respons HTTP keluar. Walau bagaimanapun, respons tidak dihantar kepada klien (iaitu, penyemak imbas) sehingga skrip menyelesaikan pelaksanaannya.

Oleh kerana pembolehubah $_COOKIE mencerminkan kuki yang disertakan dalam permintaan HTTP semasa, sebarang perubahan yang dibuat pada kuki semasa pelaksanaan skrip sebelah pelayan tidak tersedia serta-merta dalam $_COOKIE.

Ketersediaan Kuki Garis masa

Untuk menggambarkan garis masa:

  1. setcookie() dipanggil.
  2. Pelaksanaan skrip diteruskan dan mengubah suai pembolehubah $_COOKIE.
  3. Sekali skrip selesai pelaksanaan, respons HTTP lengkap, termasuk kuki yang baru dibuat, dihantar ke klien.
  4. Di sisi klien, kuki baharu ditetapkan, tetapi penyemak imbas tidak menghantar semula kuki ini ke pelayan sehingga permintaan HTTP seterusnya.
  5. Dalam pelaksanaan skrip berikutnya, pembolehubah $_COOKIE akan mengandungi nilai kuki yang baru dibuat.

Menyelesaikan Isu

Untuk memastikan $_COOKIE mencerminkan nilai kuki yang baru ditetapkan, anda boleh mengatasinya dalam skrip yang sama:

setcookie('uname', $uname, time() + 60 * 30);
$_COOKIE['uname'] = $uname;
Salin selepas log masuk

Tindakan ini mencipta kuki dalam respons HTTP keluar dan segera menetapkannya nilai dalam pembolehubah $_COOKIE, menjadikannya boleh diakses untuk digunakan dalam pelaksanaan skrip semasa.

Atas ialah kandungan terperinci Mengapa Nilai Kuki Saya Hilang Selepas Menggunakan `setcookie()` dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan