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.
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.
Untuk menggambarkan garis masa:
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;
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!