Maison  >  Article  >  développement back-end  >  Comment implémenter une session php sans expiration

Comment implémenter une session php sans expiration

藏色散人
藏色散人original
2020-07-28 09:42:552301parcourir

La méthode d'implémentation de la session PHP qui n'expire pas : utilisez d'abord le client pour stocker le cookie ; puis stockez l'ID de session obtenu dans le cookie du client ; puis définissez la valeur du cookie ; "fonction C'est tout.

Comment implémenter une session php sans expiration

Partagez la solution et la méthode d'implémentation de la session n'expirant jamais en PHP

Ouvrez les paramètres ini de php. fichier, modifiez trois lignes comme suit :

Recommandations associées : "session php (sujet) "

1. session.use_cookies

Définissez cette valeur sur 1 et utilisez des cookies pour transmettre l'ID de session

2 session.cookie_lifetime

Cela représente l'heure à laquelle l'ID de session est stocké dans le cookie client. Le SessionID est invalidé dès sa fermeture... C'est pour cette raison que la session PHP ne peut pas être utilisée en permanence. Fixons-le donc à un nombre qui nous semble très grand, que diriez-vous de 999999999, ce n'est pas grave ! C'est ça.

3. session.gc_maxlifetime

C'est l'heure à laquelle les données de session sont stockées côté serveur. Si cette durée est dépassée, les données de session seront automatiquement supprimées ! au 99999999.

Voilà, tout va bien. Bien sûr, si vous n'y croyez pas, testez-le et voyez - organisez une session et revenez après 10 jours et demi pour voir si votre ordinateur ne fonctionne pas. éteint ou éteint, vous pouvez toujours voir l'ID de session.

Bien sûr, il est également possible que vous n'ayez pas l'autorité pour contrôler le serveur et que vous n'ayez pas autant de chance que moi de modifier les paramètres du php.ini. Il existe un moyen de nous fier à nous-mêmes. , nous devons utiliser le client pour stocker les cookies, n'est-ce pas ? L'ID de session obtenu est stocké dans le cookie du client, définit la valeur de ce cookie, puis transmet cette valeur à la fonction session_id(). >

<?php 
session_start(); // 启动Session 
$_SESSION[&#39;count&#39;]; // 注册Session变量Count 
isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); 
// 如果设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,否则生成SessionID 
$_SESSION[&#39;count&#39;]++; // 变量count加1 
setcookie(&#39;PHPSESSID&#39;, $PHPSESSID, time()+3156000); // 储存SessionID到Cookie中 
echo $count; // 显示Session变量count的值 
?>

Remarque : Dans la ligne setcookie, le 'PHPSESSID' n'est pas certain et peut avoir été modifié. Le meilleur moyen est d'utiliser la fonction phpinfo() pour vérifier et confirmer la valeur de la session. .name, qui est plus scientifique.

Ce 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn