Sessions php

Fermé
Mathieu - 26 sept. 2005 à 09:14
 Utilisateur anonyme - 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 :)
A voir également:

4 réponses

StreM Messages postés 515 Date d'inscription lundi 18 octobre 2004 Statut Membre Dernière intervention 28 février 2007 124
26 sept. 2005 à 10:26
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.
7
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 ?
0
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?
0
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>';  
    }  
}  
?>  
0
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
26 sept. 2005 à 15:43
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)
5
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.
1
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
26 sept. 2005 à 13:25
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.
0
Il faut le mettre avant ou après le session_start() ?

Je veux changer la durée de session, car mes membres ont de longs formulaires à remplir. Et en général ils mettent plus de 24 ,minutes pour tout remplir et donc lorsqu'ils valident, la session a déjà expirée et ils perdent tout !
0
djerem06 Messages postés 46 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 23 avril 2015 6
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 !
0
djerem06 Messages postés 46 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 23 avril 2015 6
28 juil. 2010 à 23:13
http://www.jjsworld.fr/blog/21-developpement/94-permettre-une-duree-de-session-illimitee-dans-une-application-web
0
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 !!!
0