Maison >développement back-end >tutoriel php >Un vieux bug PHP : en-tête Set-Cookie en double reçu ?
Comment résoudre le problème que PHP génère des en-têtes Session Set-Cookie en double ?
J'ai rencontré aujourd'hui un vieux bug que je n'avais jamais découvert auparavant. La réponse frontale a reçu deux en-têtes Set-Cookie en double.
J'ai été longtemps perplexe, et après une longue période de dépannage, j'ai finalement déterminé que cela était dû à des appels répétés à la fonction session_start().
Chaque fois que la fonction session_start() est appelée, un en-tête Set-Cookie sera affiché.
Solution :
session_start(); session_abort(); header_remove('Set-Cookie'); // 移除 Set-Cookie 头
Extension :
Après session_start(), le fichier de session correspondant est verrouillé et ne sera déverrouillé qu'à la fin du script en cours.
Pendant la période de verrouillage, si un processus accède au même identifiant de session, session_start() ne démarrera pas tant que le fichier ne sera pas déverrouillé.
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 ,依然可以对文件进行 写操作
session.cookie_lifetime La valeur par défaut est 0, ce qui signifie que le cookie n'est pas valide lorsque le navigateur est fermé
En plus de configurer cookie_lifetime dans php.ini, il peut également être défini via la fonction session_set_cookie_params. gc_maxlifetime La valeur par défaut est de 1440 secondes, c'est-à-dire que si l'intervalle de temps entre les deux requêtes de l'utilisateur dépasse 1440 secondes,
Le fichier de session côté serveur sera traité comme un déchet par PHP. Si gc_probability/gc_divisor est égal à 1, la session. le fichier sera supprimé et recyclé
Définissez le cookie de session et le fichier de session expire après 86 400 secondes (1 jour) :
session.cookie_lifetime=86400 session.gc_maxlifetime=86400 session.gc_probability=1 session.gc_divisor=1
Apprentissage recommandé : "
Tutoriel vidéo PHPCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!