IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

session destroy , action auto+X/heur


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    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

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    oui mais je ne vois pas comment , je dois creer un champs " time" alors?

  4. #4
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    au début de ta page tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    salut,

    va voir ceci :
    FAQ session

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


  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    @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

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    enfait , je ne sais pas comment controler que l'user est bien connecter depuis x temps sans interuption ( pour credits)

  8. #8
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    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

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    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

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    plus la peine les gars , j'ai enfin apres une folle apres midi reussi a codé tout ca

    a la prochaine


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/08/2009, 14h27
  2. Réponses: 9
    Dernier message: 04/07/2008, 11h53
  3. checkbox action auto
    Par gforce dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/01/2007, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo