Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/10/2006, 18h18   #1
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
Par défaut expiration d'une session

bonjour à tous.
voici mon probleme:
je veux qu'une session soit expirer et rediriger 30 minutes apres que l'utilisateur accede à la page d'acces.
voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
include "conn.php";
session_start();
$login=$_SESSION['login'];
if($login){
$sql="select * from admin where login='$login'";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
$prio=''.$row['priorite'].'';
$temps=''.$row['temps'].'';}
$temps_ecou=time()+$temps;
?>
<html><head><title>TEST</title></head>
<body>
<p><font color="#FF0000"><? echo $login;?></font></p>
<?
if($temps_ecou){
header("location:logout.php");}
else{
if($prio=="administrateur"){
?>
<p><a href="logout.php">Logout</a><br></p>
<p><font color="#FF0000">C'est moi l'Admin</font></p>
<?
}
else{
?>
<p><a href="logout.php">Logout</a></p>
<p><font color="#FF0000">Je suis un simple invité</font></p>
<? } ?>
</body>
</html>
<? } }
else{
header("location:index.php");} 
?>
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 18h21   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Tu pourrais garder en $_SESSION le moment de la dernière activité. Puis lorsque que le membre essaye de revenir sur la page tu fais un test et tu détruis la session.

Sinon, il faudrait vérifier, tu pourrais réduire la durée de vie des sessions mais à se moment là ca le ferait qu'il ait activité ou non
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 18h35   #3
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
mais ce que je voudrais moi c qu'une personne puisse me corriger le code
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 18h48   #4
Membre régulier
 
Inscription : janvier 2004
Messages : 133
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 133
Points : 97
Points : 97
lu

Code :
1
2
3
4
5
6
7
 
...
$temps_ecou=time()+$temps; // $temps représente quoi ?
...
if($temps_ecou){ // ce test, à priori, sera toujours vrai. 
header("location:logout.php");}
...
__________________
-
http://wsympho.free.fr
sympho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 18h59   #5
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
Code :
1
2
3
4
$temps_ecou=time()+$temps; 
if($temps_ecou){ // ce test, à priori, sera toujours vrai. 
header("location:logout.php");}
time() represente le temps ecoulé depuis 1970
$temps une variable recuperer depuis la base de données c la ou j'ai stocker les 30 minutes

je m'explique :
si $temps_ecou recoi le $temps(30) + times()
la session doit etre expirer et rediriger vers ...
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2006, 19h26   #6
Membre régulier
 
Inscription : janvier 2004
Messages : 133
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 133
Points : 97
Points : 97
lu

Donc je suppose que
dans ce cas, pour que ton code fonctionne tu dois enregistrer la valeur de time() lors de la connexion et
Code :
1
2
 
$heure_connexion = time(); //lorsque l'utilisateur se connecte
et ensuite
Code :
1
2
3
 
if ((time() - $heure_connexion) > $time) {
...
__________________
-
http://wsympho.free.fr
sympho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2006, 11h26   #7
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
bonjour;
voila Sympho pour ton code je pense que c pas juste vu que la variable qui contient time()
Code :
1
2
$heure_connexion= time();
s'incrément automatiquement
alors

Code :
1
2
3
if((time() - $heure_connexion) > $time) {
est toujours fausse puisque
time() - $heure_connexion=0
et 0 est toujours inferieur à $time ($time=60)

si quelqu’un a une autre réponse
merci d’avance
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2006, 20h36   #8
Membre régulier
 
Inscription : janvier 2004
Messages : 133
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 133
Points : 97
Points : 97
$heure_connexion = time(); //lorsque l'utilisateur se connecte pas à chaque fois
__________________
-
http://wsympho.free.fr
sympho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2006, 09h59   #9
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
désole mais toujours pas de résultat vu que time() est auto-incrementable,
j'ai besoin d'une chose,c'est que a chaque il se connecte il garde la variable $heure_connexion en memoire sans quelle soit incrementé
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2006, 08h22   #10
Membre régulier
 
Inscription : janvier 2004
Messages : 133
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 133
Points : 97
Points : 97
salut

à quel moment se fait la connexion ?
__________________
-
http://wsympho.free.fr
sympho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 10h00   #11
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
au moment ( X ):
X=moment de la connexion
et quand je mets time(),c 'est toujours 0.
je m'explique:
au moment de la connexion moi je veux le preserver dans une variable sans qu'il soit incrementé
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 08h25   #12
Membre régulier
 
Inscription : janvier 2004
Messages : 133
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 133
Points : 97
Points : 97
salut,

Tu ne m'as compris, l'instruction
Code :
1
2
3
4
 
$heure_connexion= time();
// et on sauvegarde dans la session pour s'en servir plus tard.
$_SESSION['heure_connexion'] = $heure_connexion;
doit être exécutée uniquement lorsque l'utilisateur se connecte, pas à chaque fois que la page est chargée (sinon ça ne correspond plus à l'heure de connexion). donc tu dois mettre ces instructions dans la partie du code qui gère la connexion.

-
__________________
-
http://wsympho.free.fr
sympho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 10h14   #13
Membre habitué
 
Avatar de Akramweb
 
Inscription : avril 2005
Messages : 168
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 168
Points : 125
Points : 125
Envoyer un message via MSN à Akramweb
Merci sympho et Kerod pour votre aide maintenant ça marche très bien, il me fallait juste stocker time() dans une session mais pas dans une variable.
Akramweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 10h43   #14
Membre éclairé
 
Homme Yann
IUT Informatique
Inscription : mars 2011
Messages : 342
Détails du profil
Informations personnelles :
Nom : Homme Yann
Localisation : France

Informations professionnelles :
Activité : IUT Informatique

Informations forums :
Inscription : mars 2011
Messages : 342
Points : 375
Points : 375
Bonjour, j'ai une question concernant l'expiration de session.

Si l'utilisateur utilise pas le site, ne fait rien dessus, le contenu de la variable $_Session est effacé au bout de 20min.

Donc je suis en train de mettre en place une déconnexion automatique au bout de 20min d'inactivité.

Du coup j'ai mi une vérification qui est:

Code :
if($_SESSION['Temps']+20<$temps)
Mais en réfléchissant, si je fais je me dis que ca ne doit pas me rajouter 20min vu que c'est en timestamp le contenue de ma variable $_Session['temps'].

J'ai fait des recherches mais j'ai pas trouvé grand chose, je voudrai savoir comment faire un timestamp correspondant à mes 20min?

Merci d'avance
malgache est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h56.


 
 
 
 
Partenaires

Hébergement Web