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

MkFramework Discussion :

Deconnection avec (_logout) - Mise à jour de la table session


Sujet :

MkFramework

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Points : 28
    Points
    28
    Par défaut Deconnection avec (_logout) - Mise à jour de la table session
    Bonjours cher tous.

    je développe présentement un projet via MKFramework. tout ce passe très très bien. sauf un point.

    Dans mon projet, j'ai créé une table session(SessionID,EtatSession,DebutSession,FinSession,UsersId). le but est de tracer les accès à mon système.

    Quand je me connecte, il renseigne correctement la table session en mentionnant que l'état est 'connecté'. mais quand je me déconnecte en utilisant _logout(), il ne se passe rien.

    Ce que je veux :
    -Si j'appelle la fonction _logout(), qu'il mette à jour ma table session pour la session ouverte (EtatSession='Deconnecter',FinSession=' dateheure du moment de deconnection')

    Voila ce que j'ai fait:

    Code php : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    //--------------------------------------------------------------------------------------------
    public function _logout(){
             $tMessage=$this->SessionDeconProcessSave();
    		//_root::getAuth()->logout();
    	}
     
     
     
     
    private function SessionDeconProcessSave(){
    		if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
    			return null;
    		}
     
            $tSessions=model_sessions::getInstance()->findBySessionId($_SESSION['UsersId']);
     
    		$iId=$tSessions->SessionID;;
    		if($iId==null){
    			$oSessions=new row_sessions;	
    		}else{
    			$oSessions=model_sessions::getInstance()->findById($iId );
    		}
     
            /*$sLogin=_root::getParam('login');
            $tUser=model_users::getInstance()->findAgent($sLogin);*/
    		$tColumn=array('EtatSession','FinSession');
    		foreach($tColumn as $sColumn){
                    if($sColumn=='EtatSession'){
                      $oSessions->$sColumn ='Deconncter';
                    }elseif($sColumn=='FinSession'){
                      $oSessions->$sColumn = date("Y-m-d H:i:s");
                      $_SESSION['debut']=date("Y-m-d H:i:s");
                    }
    			    //$oSessions->$sColumn=_root::getParam($sColumn,null) ;
    		      }
     
     
    		if($oSessions->save()==false){
     
    			return $oSessions->getListError();
     
    		}
     
    	}

    quelqu'un peut-il m'orienter. Merci d'avance

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Quand vous vous déconnectez, vous le faites via un formulaire en POST ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!_root::getRequest()->isPost() ){

    si c'est le cas, vous pouvez ajouter du log pour vérifier jusqu'où il va

    avec

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    _root::getLog()->log('on passe ici');

    et dans le fichier conf/site.ini.php activez le log application

    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [log]
    application=1

    il créera un fichier dans data/log
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Points : 28
    Points
    28
    Par défaut problème résolu
    merci imikado;
    en fait j'ai fait quelques petites modification sur mes fichiers et tout marche à merveille

    Code php : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    //-------------------------dans mon modèle---------------------------------------------------
    public function findBySessionId($uId){
    		//return $this->findOne('SELECT * FROM '.$this->sTable.' WHERE SessionID = (SELECT MAX(SessionID) FROM sessions GROUP By UsersId) AND UsersId=? ',$uId );
            $nIdCon = $this->findOneSimple('SELECT MAX(SessionID) as IDMAX FROM '.$this->sTable.' WHERE UsersId=? ',$uId );
            return $nIdCon->IDMAX;
    	}
     
    //-----------------------------dans mon main------------------------------------------------------------------------------------------------
     
    public function _logout(){
             $tMessage=$this->SessionDeconProcessSave($_SESSION['userId']);
    		_root::getAuth()->logout();
    	}
     
     
     
     
    private function SessionDeconProcessSave($usid){
    		/*if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
    			return null;
    		}*/
     
            //$oSSid=model_sessions::getInstance()->findBySessionId($usid);
     
    		$iId=model_sessions::getInstance()->findBySessionId($usid);
    		if($iId==null){
    			$oSessions=new row_sessions;	
    		}else{
    			$oSessions=model_sessions::getInstance()->findById($iId );
    		}
     
            /*$sLogin=_root::getParam('login');
            $tUser=model_users::getInstance()->findAgent($sLogin);*/
    		$tColumn=array('EtatSession','FinSession');
    		foreach($tColumn as $sColumn){
                    if($sColumn=='EtatSession'){
                      $oSessions->$sColumn ='Deconncter';
                    }elseif($sColumn=='FinSession'){
                      $oSessions->$sColumn = date("Y-m-d H:i:s");
                    }
    			    //$oSessions->$sColumn=_root::getParam($sColumn,null) ;
    		      }
     
     
    		if($oSessions->save()==false){
     
    			return $oSessions->getListError();
     
    		}
     
    	}

    voici, tout marche. si cela peu inspirer quelqu'un .

    Merci !

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

Discussions similaires

  1. Mise à jour d'une table avec une autre
    Par julie75 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/10/2007, 18h54
  2. Mise à jour d'une table avec une autre
    Par Oilcout dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 04/10/2007, 13h02
  3. Réponses: 3
    Dernier message: 18/07/2007, 17h20
  4. Mise à jour d'une table avec une autre
    Par Lucien dans le forum SQL
    Réponses: 2
    Dernier message: 20/04/2006, 10h46
  5. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46

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