modification de la durée de vie d'une session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : modification de la durée de vie d'une session

par Zurg » 07 sept. 2007, 15:33

OK, merci, je le mettrai quand même avant le session_start();

Bon week-end @ tous !

par Sékiltoyai » 07 sept. 2007, 12:46

Vi, tu as raison, c'est ce que j'ai fait entre temps, par contre je l'ai placé après le session_start() sans faire gaffe et ça marche quand même... est-ce la configuration de WAMP qui le permet ? Ou cela marchera quand même ?
Non, ce n'est pas une configuration spécifique. Si tu dis que cela marche tant mieux, mais vérifie tout de même dans ton navigateur la date de validité des cookies que tu crées.

par Zurg » 07 sept. 2007, 09:21

Salut,

merci pour vos réponses !

-> fab
Faut aussi savoir que suivant ou est hébergé ton site tu n'auras pas la possibilité de changer cette valeur
En fait, c'est pour une appli en intranet, je m'autohéberge !

->Sékiltoyai
Non, la syntaxe n'est pas correcte, lis la doc de ini_set().
Tu dois changer la configuration avant de démarrer ta session avec session_start().
Vi, tu as raison, c'est ce que j'ai fait entre temps, par contre je l'ai placé après le session_start() sans faire gaffe et ça marche quand même... est-ce la configuration de WAMP qui le permet ? Ou cela marchera quand même ?

Voici mon code, pour info :
session_start();

ini_set('session.gc_maxlifetime', 7200); // initialisation de la durée de vie de la session

// temporisation de la session

if (!isset($_SESSION['debut']))
    $_SESSION['debut'] = time();
else { // si la session est expirée, redirection vers la page de login
    if (time() - $_SESSION['debut'] > ini_get('session.gc_maxlifetime')) {
        session_destroy();
		echo "Votre session a expiré, vous allez être redirigé(e) vers la page de connexion dans 3 secondes";
		echo "<meta http-equiv=\"Refresh\" content=\"3;URL=login.php\">";
		exit;
	}
}

par AB » 06 sept. 2007, 20:01

Faut aussi savoir que suivant ou est hébergé ton site tu n'auras pas la possibilité de changer cette valeur.
C'est vrai mais de moins en moins. Je viens d'avoir l'heureuse surprise la semaine dernière avec online.net, un de mes hébergeurs mutualisé pourtant très minimaliste niveau config. Ils viennent juste d'autoriser le ini_set(). Pas trop tôt, car pour les autres sites j'avais pris entre temps un autre hébergeur qui était plus souple niveau config.

Mainenant pour les hébergements gratuits, ça risque d'être niet encore pour longtemps.

par fab » 06 sept. 2007, 13:00

Faut aussi savoir que suivant ou est hébergé ton site tu n'auras pas la possibilité de changer cette valeur.

par Sékiltoyai » 06 sept. 2007, 12:43

Non, la syntaxe n'est pas correcte, lis la doc de ini_set().
Tu dois changer la configuration avant de démarrer ta session avec session_start().

par Zurg » 06 sept. 2007, 08:45

Salut,

merci pour ta réponse, exactement ce qu'il me fallait !

Donc, si j'ai bien compris, c'est la directive session.cookie_lifetime qui m'intéresse non ?

Si oui, ma synthaxe est-elle correcte ?
<?php
ini_set('session.cookie_lifetime=7200');
?>
<edit> Ah oui, une autre question aussi, à quel endroit placer ce petit bout de code ? </edit>

Merki !

par Sékiltoyai » 05 sept. 2007, 20:52

Tu peux modifier la configuration à la volée par ini_set(), les modifications ne seront effectives que pour ton script.

modification de la durée de vie d'une session

par Zurg » 05 sept. 2007, 16:52

Bonjour,

je voudrais savoir s'il est possible de modifier la durée de vie d'une session via php ?

J'ai bien vu qu'on pouvait le modifier directement dans le php.ini, mais il y a d'autres applications qui tournent sur mon serveur, et qui nécessitent une durée de vie illimitée. (enfin, jusqu'à la fermeture du navigateur quoi...)

Merci d'avance !