est-il possible d'étendre l'heure d'expiration de la session de l'utilisateur en CI. Ce que je veux faire, c'est, par défaut, le cookie de la session de chaque utilisateur dure par exemple 1 jour, mais chaque fois que l'utilisateur visite le site que son temps d'expiration de la session est prolongé d'une journée de plus. P>
Je ne sais pas si c'est une bonne idée de faire cela, peut-être que je devrais simplement définir le temps de vie des cookies pour une semaine et c'est tout? P>
5 Réponses :
Parlez-vous du composant de la session dans CodeDigniter? Vous pouvez aller à config.php et définir $ sess_expiration = 7200; code> (7200 est la valeur par défaut) p>
La façon dont je comprends $ SESS_Expiration indique simplement la longue session Cookie vit car elle a été créée, 2 heures dans ce cas, ce que je veux réaliser, c'est si l'utilisateur est actif, son cookie de session n'expire théoriquement pas. J'espère que cela rend plus clair ...
à partir du Guide de l'utilisateur : P>
$ sess_expiration strong>: le nombre de secondes que vous souhaitez que la session dure. La valeur par défaut est de 2 heures (7200 secondes). Si vous souhaitez qu'une session non expirante définit la valeur à zéro: 0 p> blockQuote> Espérons que c'est ce que vous voulez faire? P>
Je crois ce que vous voulez, c'est en fait le comportement par défaut. Jetez un coup d'oeil à sess_read () et sess_update () dans /system/libraires/session.php p>
Last_activity pour une session active est mise à jour toutes les cinq minutes. P>
L'expiration de la session est cochée avec Last_activity + sess_expiration Ainsi, pour le comportement que vous voulez, définissez votre temps de sess_expiration à 86400 (un jour) et vous devriez être défini. P>
Vous devriez vous définir dans le fichier CONFIG.PHP non dans le fichier de bibliothèque. Lorsque vous mettez à niveau le noyau de Coundigniter, vous perdrez les modifications.
Pour le compte rendu, je voulais examiner le fichier système pour voir comment les sessions de CodeDIGNITER sont liées à la question initiale, à ne pas modifier, mais je peux voir comment cela aurait pu être incertain.
Le temps de session par défaut dans le codeDigniter est aussi vous pouvez définir $ sess_expiration = 0; code> Cela signifie que vous définissez une session pour toujours. P> En fait, je pouvais voir dans la session de la bibliothèque de CodeDIGHT.PHP P>
// Set the session length. If the session expiration is
// set to zero we'll set the expiration two years from now.
if ($this->sess_expiration == 0)
{
$this->sess_expiration = (60*60*24*365*2);
}
Vous pouvez utiliser ceci:
$this->config->set_item('sess_expiration', $sec); $this->session->sess_destroy(); $this->session = new CI_Session(); // where $sec is the seconds until expiration