Bagaimana untuk menyelesaikan masalah yang PHP mengeluarkan pengepala Set-Kuki Sesi pendua?
Saya menghadapi pepijat lama hari ini yang tidak pernah saya temui sebelum ini. Respons bahagian hadapan menerima dua pengepala Set-Cookie pendua.
Saya hairan dan selepas beberapa lama menyelesaikan masalah, saya akhirnya menentukan bahawa ia disebabkan oleh panggilan berulang ke fungsi session_start().
Setiap kali fungsi session_start() dipanggil, pengepala Set-Cookie akan dikeluarkan.
Penyelesaian:
session_start(); session_abort(); header_remove('Set-Cookie'); // 移除 Set-Cookie 头
Sambungan:
Fail sesi yang sepadan selepas session_start() dikunci sehingga penghujung skrip semasa akan menjadi tidak berkunci.
Semasa tempoh kunci, jika proses mengakses id sesi yang sama, session_start() tidak akan bermula sehingga fail dibuka kuncinya.
session_start(); //starts the session,独占对应session id的文件 $_SESSION['user']="Me"; 将变量写入对应的session 文件 session_write_close(); // close write capability ,关闭对文件 的 写独占 echo $_SESSION['user']; // you can still access it ,依然可以对文件进行 写操作
Nilai lalai session.cookie_lifetime ialah 0, yang bermaksud bahawa kuki menjadi tidak sah apabila penyemak imbas ditutup
Selain mengkonfigurasi cookie_lifetime dalam php.ini, ia boleh. juga ditetapkan melalui fungsi session_set_cookie_params.
session.gc_maxlifetime lalai kepada 1440 saat, iaitu, jika selang masa antara dua permintaan pengguna melebihi 1440 saat,
sesi sebelah pelayan fail akan dianggap sebagai sampah oleh PHP, jika gc_probability/gc_divisor Jika sama dengan 1, fail sesi akan dipadamkan dan dikitar semula
Tetapkan kuki sesi dan fail sesi untuk tamat tempoh selepas 86400 saat (1 hari):
session.cookie_lifetime=86400 session.gc_maxlifetime=86400 session.gc_probability=1 session.gc_divisor=1
Pembelajaran yang disyorkan: "Tutorial Video PHP》
Atas ialah kandungan terperinci Pepijat PHP lama: Pengepala Set-Kuki Pendua diterima?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!