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 :

[Sécurité] Mise en session et FireFox


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 35
    Points : 29
    Points
    29
    Par défaut [Sécurité] Mise en session et FireFox
    Bonjour,

    Je voulais savoir si d'autres personnes sont dans le même cas que moi et s'ils ont trouvé une solution. J'ai un programme tout simple, avec une mise en session d'une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session_start();
    $_SESSION[maVariable] = $valeur;
    Dans cette même page, il y a un formulaire. Je valide le formulaire. J'arrive donc sur une nouvelle page où je récupére la session en cours puis ma variable mise en session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($PHPSESSID)
        session_start($PHPSESSID);
    $maVar = $_SESSION[maVariable];
    Sous IE, je récupére bien ma variable. Mais sous FireFox la valeur de la variable est changée. Je n'arrive pas à trouver et comprendre d'où peut venir le problème.

    Est ce que d'autres personnes sont concernées ?

    D'avance merci pour votre aide.

    Bonne journée,
    Dlfine.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut


    Et si tu remplacais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($PHPSESSID)
        session_start($PHPSESSID);
    $maVar = $_SESSION[maVariable];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    $maVar = $_SESSION[maVariable];

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    salut,
    j'utilise des sessions et je teste sous FF et IE, et je n'ai pas de pb.
    Par contre, je ne fais pas comme toi.
    Lorsque j'arrive sur une nouvelle page, je fais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session_start();
    $maVar = $_SESSION[maVariable];
    Peut-être que ça vient de là. Il considère peut-être que tu as 2 sessions différentes.

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    ca c'est pas propre du tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    $maVar = $_SESSION[maVariable];
    Tu risques d'avoir plein d'erreur comme ca...

    utilise plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    $maVar = $_SESSION['maVariable'];
    Même si ca n'a rien à voir avec ton pbm avec firefox

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    j'utilise les sessions assez souvant, que ce soit sous IE ou firefox cq marche tres bien

    il te manque peut etre un session_register pour enregistrer les variables dans la session.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Bonjour, :o

    Tout d'abord merci pour vos messages. J'ai essayé avec :
    - les guillemets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['maVariable'];
    - En changant le lancement de la session
    - Avec la fonction d'enregistrement des sessions
    Mais malheureusement, ça ne marche toujours pas sur FireFox.

    Apparemment ce n'est pas un problème fréquent. Je vais essayer de trouver la faille. Si de votre côté vous avez encore des tuyaux pour le passage de session, je suis preneuse.

    Encore Merci de votre aide.

    Bonne journée.
    Dlfine

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 39
    Points : 31
    Points
    31
    Par défaut
    moi j'ai pas de probleme je t'envoye mon code:
    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
     
     
    //
    //	on recuperer les eventuels varaiables de login
    //
    unset($session_nom);
    unset($session_prenom);
    unset($session_id);
    unset($session_login);
     
    $session_login = @$_POST['login'];
    $session_passwd = @$_POST['password'];
    //
    //	on test ces variables dans le cas d'une session 
    //	desja ouverte c'est variable n'existe pas		
    //
    if(!$session_login)
    {
    	session_start();
     
    	if(!isset($_SESSION['session_nom']))
    	{
    		header($location_base);
    		exit();
    	}
    }
    else{
    	session_start();
    	MySession_Start($session_login,$session_passwd);
    }
    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
     
    function MySession_Start($session_login,$session_passwd)
    {
    global $db;
    global $location_base;
    global $session_nom;
    global $session_prenom;
    global $session_id;
     
    	$sql = "select * from user where login='$session_login'";
    	$db->connect();
    	if($db->query($sql))
    	{
    		@$db->fetch();
    		if(!strcmp($db->row['passwd'],md5($session_passwd)))
    		{
    			$session_nom = $db->row['nom'];
    			$session_prenom = $db->row['prenom'];
    			$session_id = $db->row['id_users'];
    			session_register("session_id","session_nom","session_prenom","session_login");
    			//print "mot de passe oki:!!!!!!";
    		}
    		else
    		{
    			session_destroy();
    			//print "mot de passe wrong:!!!!!!";
    			header($location_base);
    			exit();
    		}
    	}
    	else
    	{
    		session_destroy();
    		//print "erreur de SQL!!!";
    		header($location_base);
    		exit();
    	}
    }
    ce code marche sous IE et sous FIREFOX, du moins chez moi

    bonne chance

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Re-Bonjour,

    Encore pour votre aide. Finalement j'ai trouvé mon erreur. Il s'agissait d'un problème de type de la variable mise en session. Je ne sais pas trop pourquoi. En tout cas, en la forcant en string dans la première page, je n'ai plus de problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['maVariable'] = settype($maValeur, "string");
    Bonne journée.
    Dlfine.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    MERCI beaucoup !!!!!!
    ca fait 5h que je cherche comme un malade pourquoi mon code fonctionne sous cette merde d'IE et pas sous firefox !!!!

    et en mettant $_SESSION['maVariable'] = settype($maValeur, "string"); bah bizarement ya plus AUCUN probleme !

    alors maintenant question :
    c'est IE qui fait bien les choses pour une fois et mozilla qui a merdé dans firefox
    ou tout le monde code mal et oublie le settype pour les session composé de string

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

Discussions similaires

  1. mise en session Arraylist
    Par dude666 dans le forum JSF
    Réponses: 2
    Dernier message: 30/06/2006, 12h52
  2. [PEAR][HTML_QuickForm] Mise en session
    Par jeff_! dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/06/2006, 08h59
  3. [Sécurité] Variables et mise en session
    Par kcizth dans le forum Langage
    Réponses: 2
    Dernier message: 10/01/2006, 15h32
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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