Posez votre question Signaler

Sessions php

Mathieu - Dernière réponse le 11 févr. 2012 à 14:12
Salut,

Voila sur un site web que j'ai fais, les visiteurs sont identifiés via une session php.
Le problème c'est que la configuration du serveur fait que la session expire automatiquement au bout de 24min.
C'est le réglage par défaut.

J'aimerai rallonger ce temps d'expiration, savez vous comment faire ?
Il faut à priori utiliser :
ini_set('session.gc_maxlifetime', time() + 3600);
session_start();

Mais je ne suis pas sur que ca s'utilise comme ca.
Aidez moi SVP :)
Lire la suite 

Sessions php »

11 réponses
Réponse
+7
moins plus
Tu y es presque, mais c'est :
ini_set('session.gc_maxlifetime', 3600);
session_start();

3600 est la durée, et non la date d'expiration, comme dans les cookies.
Mathieu - 26 sept. 2005 à 10:54
J'ai testé ca aussi mais apparemment ca ne marchait pas non plus.
Quand est ce qu'il faut le mettre ?
Avant chaque session_start ? Ou seulement la premiere fois lors de l'identification et de l'ouverture de session ?
Afrofeel - 11 févr. 2012 à 10:59
je viens d'essayer d'inserer ini_set('session.gc_maxlifetime', 1000);
start();
mais malgre cela ma session reste active meme apres ce temps la.
C'est quoi le blem?
speedygonzales - 11 févr. 2012 à 14:12
Il existe une solution c'est d'ouvrir une session que l'on appellera par exemple $_SESSION['temps_de_connexion'] et de lui attribué la valeur timestamp actuel + le nombre de seconde souhaité pour le temps de la connexion, exemple:

Le code suivant marche impeccable mais vous ne serai jamais à l'abri d'être déconnecté avant le "ini_set session time":
<?php  
session_start();  
if(isset($_GET['deco'])) { // si l'utilisateur demande a être déconnecté  
    // on détruit les sessions:  
    unset($_SESSION['temps_de_connexion'], $_SESSION['pseudo']);  
    echo "Déconnecté !<br />";  
}  
if(empty($_SESSION['pseudo']) OR empty($_SESSION['temps_de_connexion'])) {  
    $_SESSION['pseudo'] = "son pseudo";  
    $_SESSION['temps_de_connexion'] = time()+6; // connexion pendant 6 secondes max  
    echo 'Vous venez de vous connecter<br /><a href="'.$_SERVER['PHP_SELF'].'">Recharger</a><br />';  
} else {  
    # ensuite sur les pages de votre site, il suffit de faire une condition:  
    if(time() > $_SESSION['temps_de_connexion']) { // si le timestamp actuel est dépassé  
        // on détruit les sessions:  
        unset($_SESSION['temps_de_connexion'], $_SESSION['pseudo']);  
        echo 'Vous êtes déconnecté.<br /><a href="'.$_SERVER['PHP_SELF'].'">Recharger</a>';  
    } else {  
        # on peu également dire au membre connecté ce qu'il lui reste en temps de connexion:  
        echo "Bonjour ".$_SESSION['pseudo']."<br />Il vous reste ".($_SESSION['temps_de_connexion']-time())." secondes avant la deconnexion.";  
        echo '<br /><a href="?deco">Déconnexion</a> - <a href="'.$_SERVER['PHP_SELF'].'">Recharger</a>';  
    }  
}  
?>  
Ajouter un commentaire
Réponse
+5
moins plus
Ah OK, ca doit être de sacré formulaire.

Normalement il faudrait que tu mette ton ini_set('session.gc_maxlifetime', 3600); tout au début du script, avant de faire le session_start().

Mais c'est pas pour autant quela modification sera faite: le php.ini du serveur peut être fait de telle façon ne puisse pas changer les valeurs. (a vérifier quand même)
Ajouter un commentaire
Réponse
+1
moins plus
Bonsoir,

je souhaiterai définir le temps d'une session précise à détruire au bout d'un temps défini par moi, c'est possible?

Merci d'avance.
Ajouter un commentaire
Réponse
+0
moins plus
Il faut le mettre a chaque fois que tu fais "session_start()"

Sinon, pourquoi veut tu changer le temps d'une session ? Si un utilisateur n'a rien fait au bout de 24 minutes, on le considère généralement comme étant parti.
djerem06 - 28 juil. 2010 à 23:09
tin c'est un truc de fou, pouquoi toujour demander pourquoi et vouloir faire faire autrement.
on veu ralonger le temps d'une session point barre !
djerem06 - 28 juil. 2010 à 23:13
http://www.jjsworld.fr/...
picolo - 18 janv. 2011 à 22:55
C est souvent le problème,
tu as plus de commentaires HS, genre :pourquoi tu veut faire ca ???
OSEF, le monsieur te demande comment rallonger la durée de session !!!
Ajouter un commentaire
Ce document intitulé « Sessions php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook