8
votes

Comment puis-je prolonger le temps d'expiration de la cookie en PHP à chaque fois que je régénère l'ID de session?

J'ai une page de gestion de session: sessmgr.php . Cette page est censée valider les informations de connexion de l'utilisateur, définir les cookies et conserver les variables de session en tant que mise à jour du temps d'expiration des cookies et en régénérant l'ID de session par une requête HTTP XML à intervalles réguliers jusqu'à ce que l'utilisateur se déconnecte. Je suis capable de mettre à jour l'ID de session mais je ne prolonger pas l'heure d'expiration des cookies.

Comment mettre à jour le temps d'expiration des cookies ici ??


1 commentaires

Si vous définissez un cookie existant avec une nouvelle valeur, il met à jour le cookie au lieu de l'écraser, il suffit de définir la date de l'expiration de tous les cookies à chaque fois


3 Réponses :


0
votes

Je viens de réécrire le cookie avec la nouvelle fois.


0 commentaires

18
votes

Vous devriez être capable de mettre à jour l'heure d'expiration avec setcookie code> comme:

setcookie("Cookiename", $value, NewExpirationTime)


3 commentaires

J'ai trouvé l'erreur qui ne laissait pas les cookies à mettre à jour. La valeur de la cookie que j'essayais d'écrire était de devenir NULL juste avant d'écrire le cookie car j'essayais d'utiliser $ _globals au lieu de $ _session.


@Marcelbalzer, connaissez-vous que le cookie ne fonctionnera pas à partir de 2038? C'est juste? Parce que j'ai vérifié ce lien. Stackoverflow.com/Questtions/3290424/... < / a>


@Marcelbalzer Bien pour l'instant, oui, nous sommes coiffés à 2038, mais je pense que, au moment où nous arrivons à 2035 (si pas plus tôt), nous aurons mis en œuvre un meilleur système ou converti en 64 bits, donc ce n'est pas vraiment une préoccupation.



-2
votes
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > SESSION_TIMEOUT)) { // SESSION_TIMEOUT is the amount of time you want the session to be.
    session_unset();
    session_destroy();
    header('Location: login.php');
}
$_SESSION['LAST_ACTIVITY'] = time();
Add this to your page. The if-statement checks if the session time has expired and redirects the user to loginpage.php. Otherwise it just updates the session time Of course you change things to a cookie syntax. Missed that I use sessions and you wanted a cookie.

0 commentaires