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 27/02/2006, 19h01   #1
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
Par défaut session destroy , action auto+X/heur

bonjour, bonsoir ,

voila j'expose mon probleme, j'ai regarder sur le forum , mise a par "cron" a plusieur reprise decouvert ca n'est pas la clef pour resoudre mon probleme , j'aimerais enfait apres 15 minutes d'inactivitée que la session se" detruise" et que l'internaute est redirigé sur login.php . Donc si l'user est sur une page et qu'il la refrech 30minutes apres , il sera redirigé vers login.php. je ne sais pas si il faut modifier le php.ini , je doute , j'ai un script mais qui ne fonctionne pas, alors si vous avez un , on peut y travailler desu . Ensuite 2 eme soucis , j'aimerais que l'user lorsqu'il est plus de 30 min sur le site recois un certain nombre de "credit" qui serviront a diverses action , je ne sais pas comment realisé ca.
je suppose que je dois creer un champ "credit"
je penchais a une requete ainsi :
$tov=$_SESSION['id_user'];
$req=" UPDATE utilisteur SET credit = credit +100 WHERE id_user='$tov'";

mais seulement il faut la condition et que a chaque 30minutes presents cela ce fasse, et la je ne sais pas comment faire.

je suis preneur pour tout , merci a vous
ruty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 19h45   #2
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
Bonjour,
tu peux toujours enregistrer l'heure dans une variable $time au chargement de la page et faire une comparaison de temps à chaque chargement de page donc si supérieur à 30 minutes tu supprime les valeurs de ta sessionet redirige vers login.php
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2006, 20h02   #3
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
oui mais je ne vois pas comment , je dois creer un champs " time" alors?
ruty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 00h44   #4
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
au début de ta page tu mets :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
session_start();
 
if (isset($_SESSION['time'])) {
 
    // Différence de temps exprimée en secondes (900 s = 15 mn)
    if ((time() - $_SESSION['time']) < 900) {
        $_SESSION = array();
 
        if (isset($_COOKIE[session_name()])) {
            setcookie(session_name(), '', time()-42000, '/');
        }
 
        // Finalement, on détruit la session.
        session_destroy();
 
    }
}
//else initialise l'heure à l'heure au moment du chargement de la page 
else $_SESSION['time'] = time();
Voilà en espérant que sa t'aide....
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2006, 01h01   #5
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
salut,

va voir ceci :
FAQ session

et sinon un exemple sur la doc PHP:
session-cache-expire()

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 18h27   #6
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
@yobs : si je mets ton code , meme apres 1jour si je refrech la page se reafiche , normal?

est ce que ca peux venir parce que je travail en local?

pour les credits , si ceci va pas je ne pourrai pas avancer dans le projet des credits
ruty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 00h59   #7
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
enfait , je ne sais pas comment controler que l'user est bien connecter depuis x temps sans interuption ( pour credits)
ruty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 01h21   #8
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
ska_root t'a donné la bonne solution pour ton programme en fait. C'est vrai que session-cache-expire est le plus adapté. Reporte toi au lien qu'il a donné.
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 01h48   #9
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
oui mais meme apres un labs de temps si je refrech la page revien bien et la je suis perdu

j'avais ceci mais ca ne fonctionne apparement pas

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
 
function CheckSession () 
{ 
$hour = Date ("H"); 
$minute = Date ("i"); 
$second = Date ("s"); 
$month = Date ("n"); 
$date = Date ("j"); 
$year = Date ("Y"); 
 
if(isset($_SESSION['StartTime']) 
{ 
 
$TimeOut = 3600 ; 
$ExpireTime = $_SESSION['StartTime'] + $TimeOut ; 
 
if(mktime ($hour, $minute, $second, $month, $date, $year) >$ExpireTime ) 
{ 
 
session_destroy(); 
header("location:index.php"); 
}
}
else 
{ 
 
$_SESSION['StartTime'] = mktime ($hour, $minute, $second, $month, $date, $year); 
}
}
alors ca c'etait pour l'expiration

et le meme principe pour les credits mais au lieu de supprimer la session je fait une requete

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
 
$l=$_SESSION['id_user'];
function CheckSession () 
{ 
$hour = Date ("H"); 
$minute = Date ("i"); 
$second = Date ("s"); 
$month = Date ("n"); 
$date = Date ("j"); 
$year = Date ("Y"); 
 
if(isset($_SESSION['StartTime']) 
{ 
 
$TimeOut = 3600 ; 
$ExpireTime = $_SESSION['StartTime'] + $TimeOut ; 
 
if(mktime ($hour, $minute, $second, $month, $date, $year) > 600) 
{ 
{
$upd = "UPDATE utilisateur SET credit = credit+100 WHERE id_user=$l"; 
$result = mysql_query ($upd); 
} 
 
 
}
}
else 
{ 
 
}
}
est ce que ceci est plausible?
ruty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2006, 18h07   #10
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
salut les amis , bon je vois que le post devien lointain , j'ai aboutis sur une these possible , voici mon plan :

a la connection de l'user , il y a insertion de l'heure en base de donnee
ensuite sur la page dite "accueil" apres la connexion je mets quelque chose ainsi ( il n'est pas juste mais c'est juste pour voir si mon raisonement est juste et possible):
if ( temps inseré dans la db > 600) |600 a titre d'exemple
{ $req= update table set credit = credit + 100 and temps=$dd
}
else
{}

alors $dd= temps actuel du serveur
le champs temps= le champs ou l'heure de connexion et update sera enregistrer

est ce que ceci est juste?

merci
ruty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2006, 21h48   #11
Membre régulier
 
Inscription : février 2006
Messages : 188
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 188
Points : 78
Points : 78
plus la peine les gars , j'ai enfin apres une folle apres midi reussi a codé tout ca

a la prochaine

ruty 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 10h12.


 
 
 
 
Partenaires

Hébergement Web