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é] Problème de valeur de session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Par défaut [Sécurité] Problème de valeur de session
    Bonjour,

    J'ai un formulaire, avec un champ dont la valeur par défaut est le contenu d'une variable session (ou tout au moins c'est ce que j'aimerais)

    Au début du script, j'essaie d'initialiser la variable session de la manière 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
     
           session_start();
     
    	if(isset($_POST['filtre_no_adh'])) 
    	{ 
    		$_SESSION['no_adh'] = $_POST['filtre_no_adh']; 
    	} 
    	else 
    	{
    		if(!isset($_SESSION['no_adh']))
    		{
    				$_SESSION['no_adh'] = '';
    		}	
    	}
    Or mon champ est tout le temps à vide : pourquoi ?
    Est-ce qu'uns session se termine lorsqu'on met "?>" ? (je ferme les balises php après le traitement ci-dessus, et je les réouvre pour affecter la valeur dans le champ de saisie)

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    Salut,
    Citation Envoyé par navis84
    Or mon champ est tout le temps à vide : pourquoi ?
    vu que ton code PHP m'a lair bon à première vue, je pencherais pour un problème avec ton formulaire html
    Citation Envoyé par navis84
    Est-ce qu'uns session se termine lorsqu'on met "?>" ?
    Non !
    Non seulement, elle ne se termine pas quand tu mets ?>, mais elle ne se termine pas non plus quand le script est terminé.
    Une session ne se termine que lorsqu'elle expire (inactivité pendant X secondes), ou lorsque tu apelles explicitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session_destroy();
    c'est l'avantage des sessions (les valeurs sont conservées de script en script)
    Fais voir le code html de ton formulaire ?

  3. #3
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
           session_start();
     
    	if(isset($_POST['filtre_no_adh'])) 
    	{ 
    		$_SESSION['no_adh'] = $_POST['filtre_no_adh']; 
    	} 
    	else 
    	{
    		$_SESSION['no_adh'] = '';
    	}
    aurait suffit, a priori c'est ta variable post qui n'est pas déclarée.

    fait un dans ta page pour voir ce que tu as dedans.

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Par défaut
    Merci à vous deux pour votre aide.

    Voici les précisions que vous m'avez demandées, avec les étapes d'un scénario habituel :

    1. L'utilisateur arrive sur la page en vue de saisir le formulaire et la session s'ouvre. $_POST contient Array().

    2. L'utilisateur envoie le formulaire. $_POST contient : Array ( [PHPSESSID] => 0a7648fb358773af0a700dc36d659e78 [filtre_no_adh] => 26 [bt_filtre] => Effectuer la recherche )

    3. Je clique sur OK en face de l'url pour recharger la page. $_POST contient Array().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Voici plus en détail mon formulaire :
    <form name="frm_filtre" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
         <input type='text' name='filtre_no_adh' size='10' maxlength='10' value='<?php echo $_SESSION['no_adhes']; ?>' />
         <input type='submit' name='bt_filtre' value='Effectuer la recherche' />
    </form>
    Voyez-vous un souci à ce niveau ?

    PS : j'ai essayé de mettre le contenu de la variable session dans une variable, que je mets dans le contenu de la zone de texte, et la valeur s'affiche une fois dans la zone de texte, alors que ce n'est pas le cas avec la variable session.

  5. #5
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    1. L'utilisateur arrive sur la page en vue de saisir le formulaire et la session s'ouvre. $_POST contient Array().
    normal.

    2. L'utilisateur envoie le formulaire. $_POST contient : Array ( [PHPSESSID] => 0a7648fb358773af0a700dc36d659e78 [filtre_no_adh] => 26 [bt_filtre] => Effectuer la recherche )
    parfait.

    3. Je clique sur OK en face de l'url pour recharger la page. $_POST contient Array().
    normal.

    quand tu envoie le formulaire, la page qui arrive contient des variables post. mais si tu recharges la page ou passe à la suivante, il n'y a plus de variable post, ce qui est normal vu que tu n'as pas relancé de formulaire.

    formulaire = variable post sur la page qui arrive et c'est tout

    Donc il faut que tu ta pages tu récuperes la variable post et que tu la stocke dans une variable de session et que tu n'utilises que la variable de sessions.

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Par défaut
    Oui, je suis bien d'accord avec ça. Et je trouve tout ce qui touche à la variable $_POST normal. Je décrivais juste le scénario en répondant à vos questions.

    Par contre, comme je l'explique dans mes premiers messages, ma variable de session est vide lorsque je veux la réutiliser comme valeur par défaut dans le formulaire, ou lorsque je reviens sur la page. Et c'est à ce niveau que se situe le problème.

  7. #7
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    fais tu des session_start(); au début de chaque page ?

    rebelotte tu refais un print_r($_SESSION); et tu nous dit quand est-ce que tu "perds" ta valeur de session

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/10/2007, 14h27
  2. [Sécurité] problème déconnexion d'une session
    Par gazelle dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2007, 19h31
  3. [Sécurité] Problème de sessions avec IE6
    Par TheMoutch dans le forum Langage
    Réponses: 8
    Dernier message: 21/08/2006, 17h52
  4. [Sécurité] Problème avec des variables de session
    Par zoom61 dans le forum Langage
    Réponses: 28
    Dernier message: 18/08/2006, 21h05
  5. [Sécurité] Problème de session
    Par Sandara dans le forum Langage
    Réponses: 31
    Dernier message: 23/05/2006, 16h10

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