1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut Perte de SESSION dû à l'installation d'un nouveau routeur

    Bonjour Imikado, ces derniers temps j'ai un soucis avec le Framework et la gestion de l'Authentification. En effet, on vient de mettre en place un routeur qui nous permet de
    Cependant les utilisateurs de l'application ont constatés qu'il perdait souvent leurs sessions en l'espace de quelques minutes seulement. J'ai vérifié et j'ai la même chose lorsque je me connecte à travers le même réseau wifi. Si je me connecte avec le réseau téléphonique tout marche sans problème.

    J'ai essayé de règler moi même le problème sans succès. Je suis allé faire un test sur http://www.mon-ip.com/info-adresse-ip.php et je constate que même si l'adresse ip ne change pas, le port utilisé change lui fréquemment. Et même à chaque que je relance la page, le port change. J'aimerais savoir comment résoudre ce problème.

    Voici mes tests:
    [29-06-2018 12:10]
    Votre adresse IP est : 41.82.68.186
    Port Utilisé : 18899

    [29-06-2018 12:11]
    Votre adresse IP est : 154.124.18.130 <----- changement d'adresse ip public
    Port Utilisé : 35229


    [29-06-2018 12:11]
    Votre adresse IP est : 154.124.18.130
    Port Utilisé : 22877

    [29-06-2018 12:13]
    Votre adresse IP est : 41.82.68.186 <----- changement d'adresse ip encore
    Port Utilisé : 15371


    Et j'utilise le même ordinateur pour tous les test. Merci d'avance!!

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    Bonjour,
    iil y a en effet une verification dans le framework sur l'ip: en effet un utilisateurs qui se connecte n'est pas censé changé d'ip à chaque page

    On verifie cette ip pour eviter des risques tel que la hacking ou le man in the middle (entre autre)

    Vous pouvez ignorer ce check en faisant un overload de la fonction du framework isConnected

    vous avec bien dans votre projet un fichier plugin/plugin_auth.php ?
    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
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    Copier dans ce fichier plugin/plugin_auth.php (de votre projet) la methode suivante:

    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
     
    /**
    	* @access public
    	* indique si l'utilisateur est connecte
    	* @return bool
    	*/
    	public function _isConnected(){
     
    		/*if( !isset($_SESSION['ip']) or $_SESSION['ip']!=sha1($_SERVER['REMOTE_ADDR']) 
    			or !isset($_SESSION['userAgent']) or $_SESSION['userAgent']!=sha1($_SERVER['HTTP_USER_AGENT']) ){ 
    			return false;
    		}else
    		*/
     
    		 if(
    			(int)_root::getConfigVar('auth.session.timeout.enabled')==1 
    			and (!isset($_SESSION['timeout']) or ((int)$_SESSION['timeout']-time() ) < 0)){
    			//on regenere un nouvel id de session
    			session_regenerate_id(true);
    			return false;
    		}else if(
    			_root::getConfigVar('security.xsrf.checkReferer.enabled') ==1 
    			and isset($_SERVER['HTTP_REFERER'])){
     
    			if(isset($_SERVER['HTTPS']) ){
    				$sPattern='https://'.$_SERVER['SERVER_NAME'];
     
    			}else{
    				$sPattern='http://'.$_SERVER['SERVER_NAME'];			
    			}		
    			$urllen=strlen($sPattern);
     
    			if( substr($_SERVER['HTTP_REFERER'],0,$urllen)!=$sPattern ){
    				return false;
    			}
     
    		}
     
    		 if((int)_root::getConfigVar('auth.session.timeout.enabled')==1){
    		 	$_SESSION['timeout']=(time()+(int)_root::getConfigVar('auth.session.timeout.lifetime') );
    		 }
     
    		return true;
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    Je ne sais pas si on a la même fonction "isConnected()"

    lorsque je consulte le code du pugin je trouve ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function isConnected(){
    		if(!$this->_isConnected()){
    			return false;
    		}
    
    		$this->setAccount(unserialize($_SESSION['oAccount']));
    
    		//ajouter critere supp pour verification de l'authentification
    		return true;
    	}
    Mais je ne trouve nullepart la fonction "_isConnected()"

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    J'ai vu que la class hérite de la class lib/framework/abstract/abstract_auth.php. J'ai trouvé la méthode dans cette class là. J'ai effectué les modifications, j'ai testé mais j'ai toujours la même chose.

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    Pour info le mieux c'est de faire la surcharge de la classe, car sinon à chaque mise a jour du framework vous perdrez votre patch

    sino pour investiguer:

    dans votre fichier de conf/site.ini.php

    passez cette variable à zero:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [security]
    
    xsrf.checkReferer.enabled=0
    si ça ne fonctionne pas, il faudra à chaque return false dans la methode _isConnected: ajouter un die( ' cas 1, cas2... pour savoir lequel retourne faux
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    J'ai bien mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xsrf.checkReferer.enabled=0
    Mais j'ai toujours le problème de perte de session

    lorsque je mets ça dans le code pour la fonction _isConnected
    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
    33
    34
    35
    36
    37
    38
    39
    40
    public function _isConnected(){
    
    	
    		if( !isset($_SESSION['ip'])
    			or !isset($_SESSION['userAgent']) or $_SESSION['userAgent']!=sha1($_SERVER['HTTP_USER_AGENT']) ){ 
    				echo "perte session ip";exit; //CODE AJOUTE POUR VOIR ERREUR
    			return false;
    		}else if(
    			(int)_root::getConfigVar('auth.session.timeout.enabled')==1 
    			and (!isset($_SESSION['timeout']) or ((int)$_SESSION['timeout']-time() ) < 0)){
    			echo "perte session timeout";exit; //CODE AJOUTE POUR VOIR ERREUR
    			//on regenere un nouvel id de session
    			session_regenerate_id(true);
    			return false;
    		}else if(
    			_root::getConfigVar('security.xsrf.checkReferer.enabled') ==1 
    			and isset($_SERVER['HTTP_REFERER'])){
    			echo "perte session HTTP_REFERER";exit; //CODE AJOUTE POUR VOIR ERREUR
    
    			if(isset($_SERVER['HTTPS']) ){
    				$sPattern='https://'.$_SERVER['SERVER_NAME'];
    		
    			}else{
    				$sPattern='http://'.$_SERVER['SERVER_NAME'];			
    			}		
    			$urllen=strlen($sPattern);
    
    			if( substr($_SERVER['HTTP_REFERER'],0,$urllen)!=$sPattern ){
    				return false;
    			}
    
    		}
    		
    		 if((int)_root::getConfigVar('auth.session.timeout.enabled')==1){
    		 	$_SESSION['timeout']=(time()+(int)_root::getConfigVar('auth.session.timeout.lifetime') );
    		 }
    
    		return true;
    	}
    J'obtiens le message suivant
    perte session ip

    Ce qui veut dire que c'est la ligne suivante qui pose problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( !isset($_SESSION['ip'])
    			or !isset($_SESSION['userAgent']) or $_SESSION['userAgent']!=sha1($_SERVER['HTTP_USER_AGENT']) )

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    Quand j'actualise la page, parfois je vois le message
    perte session HTTP_REFERER
    Ce qui veut dire que la condition suivante aussi pose problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(
    			_root::getConfigVar('security.xsrf.checkReferer.enabled') ==1 
    			and isset($_SERVER['HTTP_REFERER']))

  9. #9
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    Vous avez copier la methode _isConnected comme je vous l'ai proposé ? (dans mon code j'ai volontairement desactivé le check de l'ip)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    Citation Envoyé par imikado Voir le message
    Vous avez copier la methode _isConnected comme je vous l'ai proposé ? (dans mon code j'ai volontairement desactivé le check de l'ip)
    Oui mais quand je le fait je me retrouve avec l'erreur suivante
    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
    33
    34
    Trying to get property of non-object
    #0 /home/niokomomrl/intranet/module/menu/view/index.php(7): exception_error_handler(8, 'Trying to get p...', '/home/niokomomr...', 7, Array)
    #1 /home/niokomomrl/intranet/lib/framework/class_view.php(85): include('/home/niokomomr...')
    #2 /home/niokomomrl/intranet/lib/framework/class_layout.php(158): _view->show()
    #3 /home/niokomomrl/intranet/layout/bootstrap.php(83): _layout->load('menu')
    #4 /home/niokomomrl/intranet/lib/framework/class_layout.php(122): include('/home/niokomomr...')
    #5 /home/niokomomrl/intranet/module/default/main.php(104): _layout->show()
    #6 /home/niokomomrl/intranet/lib/framework/class_root.php(275): module_default->after()
    #7 /home/niokomomrl/intranet/public/index.php(47): _root->run()
    #8 {main}
    
    Detail:
    #0 /home/niokomomrl/intranet/module/menu/view/index.php (7)
    exception_error_handler( , 'Trying to get property of non-object' , '/home/niokomomrl/intranet/module/menu/view/index.php' , , Array ( [couleur_puce] => red [nbreE] => 0 ) )
    #1 /home/niokomomrl/intranet/lib/framework/class_view.php (85)
    include( '/home/niokomomrl/intranet/module/menu/view/index.php' )
    #2 /home/niokomomrl/intranet/lib/framework/class_layout.php (158)
    _view -> show( )
    #3 /home/niokomomrl/intranet/layout/bootstrap.php (83)
    _layout -> load( 'menu' )
    #4 /home/niokomomrl/intranet/lib/framework/class_layout.php (122)
    include( '/home/niokomomrl/intranet/layout/bootstrap.php' )
    #5 /home/niokomomrl/intranet/module/default/main.php (104)
    _layout -> show( )
    #6 /home/niokomomrl/intranet/lib/framework/class_root.php (275)
    module_default -> after( )
    #7 /home/niokomomrl/intranet/public/index.php (47)
    _root -> run( )
    #8 {main}
    
    Fichier : /home/niokomomrl/intranet/module/menu/view/index.php ligne 7
    
    Message : Trying to get property of non-object
    Lorsqu'on mets le bon login et le bon mote de passe, la première page s'affiche correctement, mais dès qu'on essaye d'aller sur une autre page on tombe sur cette erreur. Avec le surlignement de la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    7	$id_user_connect = _root::getAuth()->getAccount()->id_user;

  11. #11
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    Ca veut dire que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _root::getAuth()->getAccount()
    ne retourne pas l'objet du User connecté
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  12. #12
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    Vous pourriez rajoutez du debug avec un petit

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r($_SESSION);exit:

    pour voir si votre session garde bien l'utilisateur ou d'autres infos
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    Citation Envoyé par imikado Voir le message
    Vous pourriez rajoutez du debug avec un petit

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r($_SESSION);exit:

    pour voir si votre session garde bien l'utilisateur ou d'autres infos
    Oui la session est vide dès que l'adresse ip change, mais toutes les infos sur la session reviennent quand j'actualise et que je suis connécté avec l'adresse ip avec lequel je me suis identifié

    Tantot j'actualise et j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string(12) "41.82.XX.XX" Array ( [ip] => 98449c41c7434fb3d095f18aef142f3ff30049c0 [userAgent] => 1e46f2da465a3bd1bb789db63a4e139c5eed63f0 [oAccount] => O:9:"row_users":4:{s:14:"*sClassModel";s:11:"model_users";s:28:"abstract_row_bChooseUpdate";b:1;s:13:"*_tProperty";a:18:{s:7:"id_user";s:2:"10";s:6:"pseudo";s:5:"boubs";s:8:"password";s:40:"f54369bfb6d3a9483f6bbcd6419fc4b95510c40b";s:3:"nom";s:6:"DIALLO";s:6:"prenom";s:8:"Boubacar";s:8:"civilite";s:2:"M.";s:7:"adresse";s:36:"Liberté 4, Villa n°5082/O";s:9:"telephone";s:9:"776698278";s:5:"email";s:20:"fereya1990@gmail.com";s:14:"date_naissance";s:10:"1990-10-17";s:6:"groupe";s:1:"3";s:8:"fonction";s:1:"1";s:9:"categorie";s:11:"Prestataire";s:5:"photo";s:50:"../data/upload/photo_2017012607070401485454024.png";s:11:"date_entree";s:10:"2016-03-07";s:7:"etat";s:7:"activer";s:13:"fk_id_couleur";s:1:"6";}s:21:"*_tPropertyToUpdate";N;} [infosUserSession] => O:9:"row_users":4:{s:14:"*sClassModel";s:11:"model_users";s:28:"abstract_row_bChooseUpdate";b:1;s:13:"*_tProperty";a:18:{s:7:"id_user";s:2:"10";s:6:"pseudo";s:5:"boubs";s:8:"password";s:40:"f54369bfb6d3a9483f6bbcd6419fc4b95510c40b";s:3:"nom";s:6:"DIALLO";s:6:"prenom";s:8:"Boubacar";s:8:"civilite";s:2:"M.";s:7:"adresse";s:36:"Liberté 4, Villa n°5082/O";s:9:"telephone";s:9:"776698278";s:5:"email";s:20:"fereya1990@gmail.com";s:14:"date_naissance";s:10:"1990-10-17";s:6:"groupe";s:1:"3";s:8:"fonction";s:1:"1";s:9:"categorie";s:11:"Prestataire";s:5:"photo";s:50:"../data/upload/photo_2017012607070401485454024.png";s:11:"date_entree";s:10:"2016-03-07";s:7:"etat";s:7:"activer";s:13:"fk_id_couleur";s:1:"6";}s:21:"*_tPropertyToUpdate";N;} [id_user_connect] => 10 )
    Tantot quand j'actualise j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string(14) "154.124.XX.XX" Array ( )

    => le premier string c'est l'adresse ip public du modem avec lequel j'accède au site avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_SERVER['REMOTE_ADDR']);
    J'ai masqué l'adresse ip dans le code ci-dessus pour des raisons de sécurité

  14. #14
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    C'est tres bizarre cette histoire

    note: si vous faites plusieurs F5, le contenu de la SESSION change de nouveau ?

    1. vous pouvez m'indiquer votre environnement de travail ? linux/windows/mac, version de php ?

    2. on peut faire un test simple pour checker le bon fonctionnement des sessions:

    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
     
    <?php
    session_set_cookie_params(600);
    session_start();
     
    if(isset($_SESSION['test']) ){
    	$_SESSION['test']+=1;
     
     
    }else{
    	$_SESSION['test']=0;
    }
     
    echo $_SESSION['test'];

    3. une autre explication serait un soucis avec le cookie de session, si vous etes sous chrome: F12, application , cookie
    Faites moi SVP un screenshot de ce que vous voyez à chaque F5 (et le contenu de session lié)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    note: si vous faites plusieurs F5, le contenu de la SESSION change de nouveau ?
    Oui il change si le réseau avec lequel je suis connécté change. Si l'adresse ip n'a pas changé la session ne perd pas.

    1. vous pouvez m'indiquer votre environnement de travail ? linux/windows/mac, version de php ?
    Le site web est hébérgé chez OVH en mutualisé la version de php est 5.4

    2. on peut faire un test simple pour checker le bon fonctionnement des sessions:
    <?php
    session_set_cookie_params(600);
    session_start();

    if(isset($_SESSION['test']) ){
    $_SESSION['test']+=1;


    }else{
    $_SESSION['test']=0;
    }

    echo $_SESSION['test'];
    Voici ce que j'obtiens sur la vidéo suivante:
    https://drive.google.com/file/d/1uVr...ew?usp=sharing


    3. une autre explication serait un soucis avec le cookie de session, si vous etes sous chrome: F12, application , cookie
    Faites moi SVP un screenshot de ce que vous voyez à chaque F5 (et le contenu de session lié)
    Voici ce que je vois lorsque je suis connecté à travers les deux réseaux sur ma machine
    Nom : modem1.jpg
Affichages : 27
Taille : 75,2 Ko
    Nom : modem2.jpg
Affichages : 28
Taille : 81,1 Ko

  16. #16
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    A voir votre video on voit que ça pose soucis à php votre changement d'ip

    Dans l'idee, la simple page php que je vous ai envoyé devrai, à chaque F5 incrementé de 1.. ce n'est pas du tout le cas
    en plus c'est d'autant plus bizarre qu'on voit deux incremental en parallele, comme si il stoquait 2 sessions pour le meme navigateur pour la meme adresse, c'est une premiere pour moi

    c'est normal que vous changiez toujous d'ip ? ça pose pas de problème sur d'autre site ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    Citation Envoyé par imikado Voir le message
    A voir votre video on voit que ça pose soucis à php votre changement d'ip

    Dans l'idee, la simple page php que je vous ai envoyé devrai, à chaque F5 incrementé de 1.. ce n'est pas du tout le cas
    en plus c'est d'autant plus bizarre qu'on voit deux incremental en parallele, comme si il stoquait 2 sessions pour le meme navigateur pour la meme adresse, c'est une premiere pour moi

    c'est normal que vous changiez toujous d'ip ? ça pose pas de problème sur d'autre site ?
    On voit deux incremental en parallele car j'appuis deux fois de suite sur f5 pour forcer l'actualisation. Car quand j'appuis qu'une fois, l'adresse ip change mais à une vitesse moindre. La machine peut se connecter 10 à 30 fois avec la même ip avant de changer. Alors que quand j'appuis deux fois de suite, l'adresse ip change plus vite. Notez juste que je fais ça sur la vidéo pour le test. Dans les conditions normal, quand on est connécté sur le site, tout marche 1 à 5min avant le changement de l'adresse ip et la perte de la session.

    Vous pouvez faire le test vous même sur la page suivante:
    http://niokomom.com/test.php

    === Concernant les autres site web, je n'ai pas ce problème (facebook, gmail,...) sauf avec https://net2ftp.cluster020.hosting.ovh.net/index.php qui est aussi hébérgé sur ovh je crois. Je ne sais pas si le problème ne provient pas de OVH et de la configuration de leur serveurs.
    Est-ce possible de conserver la session dans le localStorage, ou dans un fichier JSON ou dans la base de données?!

  18. #18
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 101
    Points : 19 125
    Points
    19 125
    Billets dans le blog
    17

    Par défaut

    Je viens d'essayer votre page de test, je n'ai pas de soucis: je ne change pas d'ip, donc le chiffre s'incremente de 1 à chaque F5 peu importe la vitesse a laquelle j'appuie

    localStorage, base de données, le probleme c'est que dans l'idée une session c'est un "cookie" coté serveur

    Dans l'idée: vous arrivez sur un site, il initie une session:
    - on cree sur le serveur un cookie avec un id unique
    - on creer sur votre pc un cookie qui contient juste la reference à cet id

    a chaque changement de page, vous envoyer cet "id de session", et cote php on va lire simplement ce fichier cookie coté serveur via l'id transmis

    C'est bete comme chou les sessions

    Je n'arrive pas à comprendre pourquoi vous changer toujours d'ip ...
    avec le fonctionnement "normal" des sessions en php je ne vois pas de solution tant que vous n'aurez pas réglé ce soucis, d'autant que ça reste une faille en tant que tel: comment garantir entre chaque changement de page que vous n'ayez pas été victime de piratage et qu'une personne écoute entre vous et le serveur

    C'est quoi d'ailleurs l'interet de changer d'ip toutes les 5 minutes ? vous passez par un vpn ou autre ?

    Stoquer en base de données, ok mais comment faire le lien avec l'utilisateur connecté ?
    vous pourriez stoquer à la main un cookie contenant un id, et enregistrer en base de donnée ces memes infos enregistrés en session, c'est juste bizarre de réinventer la roue, c'est fait pour ça les sessions

    Pour localStorage, sur le principe c'est impossible: ce n'est pas accessible coté serveur: c'est un stockage coté navigateur uniquement..
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  19. #19
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    Bonjour Imikado, en ce moment mon soucis c'est de réglé le problème ensuite pour les questions liées à la sécurité, j'essaierai de m'en occuper après. Là ça commence à prendre du temps. Depuis une semaine c'est impossible de l'utiliser dans le réseau de l'entreprise. Alors que tous les jours ils doivent l'utiliser pour pointer et remplir leurs activités.
    Ce que j'aimerais savoir, c'est est qu'il est possible que dès que la personne mets le bon login et le bon mot de passe, que je puisse stocker ces infos en sur un fichier JSON par exemple ou en localStorage. Et si la personne se déconnecte, supprimer ces infos. En localStorage je pense que c'est mieux, vu que ce sera stocker sur le naviguateur de la personne qui est connecté. Ensuite si la session est vide, vérifier d'abord que la session est vide en localStorage avant de la rediriger vers la page de connexion. Si la session est toujours présente, remplir la session avec les données stocker en localStorage et rediriger la personne sur la page d'accueil.

  20. #20
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2014
    Messages : 52
    Points : 45
    Points
    45

    Par défaut

    Citation Envoyé par imikado Voir le message

    Je n'arrive pas à comprendre pourquoi vous changer toujours d'ip ...
    avec le fonctionnement "normal" des sessions en php je ne vois pas de solution tant que vous n'aurez pas réglé ce soucis, d'autant que ça reste une faille en tant que tel: comment garantir entre chaque changement de page que vous n'ayez pas été victime de piratage et qu'une personne écoute entre vous et le serveur

    C'est quoi d'ailleurs l'interet de changer d'ip toutes les 5 minutes ? vous passez par un vpn ou autre ?
    En fait il y'a deux modem qui permettent d'acceder à internet avec deux adresses ip public différentes. Et il y'a un routeur edgemax (edgerouter) qui permet de faire un loadbalancing. Donc tous les utilisateurs sont connéctés à ce routeur et c'est ce dernier qui va répartir les charges. Si un modem est trop chargé, il redirige les utilisateurs vers l'autre et vice versa. Donc parfois une personne se connecte à travers le modem1 et 02 minutes après le routeur le redirige vers le modem2 car le modem1 est trop chargé.

    Voici un aperçu de l'architecture du réseau de l'entreprise:
    Nom : reseau.jpg
Affichages : 11
Taille : 1,05 Mo

Discussions similaires

  1. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 09h32
  2. Perte de Session d'une page à l'autre
    Par Flam dans le forum Sessions
    Réponses: 3
    Dernier message: 15/03/2006, 14h34
  3. [Struts]Redirection globale en cas de perte de session
    Par Mercenary Developer dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/02/2006, 14h40
  4. [navigateur]Problême de pertes de sessions sous IE (.js)
    Par Invité4 dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 21/11/2005, 17h53
  5. [VB.NET] Perte de session entre 2 projets
    Par TekP@f dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/05/2005, 09h12

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