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 :

changement de session innatendu


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Par défaut changement de session innatendu
    Bonjour,

    Je travaille sur des développements sur un intranet depuis quelques semaines. Travaillant sur la sécurisation de cet intranet, je viens de me rendre compte qu'il présente un bug: l'utilisation de certaines fonctionnalités de l'intranet entraîne un changement de session.

    En effet, les fonctionnalités du type "ajouter un utilisateur" (créer un nouveau compte utilisateur) ou "modifier un utilisateur" (changer les informations sur un utilisateur: nom, mdp, ...) provoque le bug. Une fois qu'on les utilise, la session qui était jusque là active est déconnectée et une nouvelle session est immédiatement lancée. La nouvelle session est celle de l'utilisateur que l'on vient d'ajouter ou de modifier. J'ai pu mettre en évidence ce problème en utilisant au début des pages concernées.

    J'ai relu le code, il n'y a pas de nouvelle affectation des variables $_SESSION, je ne comprend donc pas ce qui provoque ce changement soudain de session. Auriez vous rencontré un bug du même type ? Avez vous des solutions pour éviter ce bug ?

    Merci d'avance.
    DAGDD

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    il nous faudrait le code de la section que tu incrimines afin que l'on puisse t'aider

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Par défaut
    voilà la page qui pose problème:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    <html>
    <head>
    <title>Titre</title>
    </head>
    <body>
    <?php 	
                                             $entreprise = $_POST['entreprise']; echo "<script language='javascript'>$entreprise</script>";
    					$level = $_POST['level']; echo "<script language='javascript'>$level</script>";
    					$login = $_POST['login']; echo "<script language='javascript'>$login</script>";
    					$password = $_POST['password']; echo "<script language='javascript'>$password</script>";
    					$civilite = $_POST['civilite']; echo "<script language='javascript'>$civilite</script>";
    					$nom = $_POST['nom']; echo "<script language='javascript'>$nom</script>";
    					$prenom = $_POST['prenom']; echo "<script language='javascript'>$prenom</script>";
    					$email = $_POST['email']; echo "<script language='javascript'>$email</script>";
    					$adresse_1 = $_POST['adresse_1']; echo "<script language='javascript'>$adresse_1</script>";
    					$adresse_2 = $_POST['adresse_2']; echo "<script language='javascript'>$adresse_2</script>";
    					$adresse_3 = $_POST['adresse_3']; echo "<script language='javascript'>$adresse_3</script>";
     
    					$tel_fixe_1 = $_POST['tel_fixe_1']; echo "<script language='javascript'>$tel_fixe_1</script>";
    					$tel_fixe_2 = $_POST['tel_fixe_2']; echo "<script language='javascript'>$tel_fixe_2</script>";
    					$tel_fixe_3 = $_POST['tel_fixe_3']; echo "<script language='javascript'>$tel_fixe_3</script>";
    					$tel_fixe_4 = $_POST['tel_fixe_4']; echo "<script language='javascript'>$tel_fixe_4</script>";
    					$tel_fixe_5 = $_POST['tel_fixe_5']; echo "<script language='javascript'>$tel_fixe_5</script>";
    					$tel_fixe_6 = $_POST['tel_fixe_6']; echo "<script language='javascript'>$tel_fixe_6</script>";
     
    					$tel_port_1 = $_POST['tel_port_1']; echo "<script language='javascript'>$tel_port_1</script>";
    					$tel_port_2 = $_POST['tel_port_2']; echo "<script language='javascript'>$tel_fixe_2</script>";
    					$tel_port_3 = $_POST['tel_port_3'];	echo "<script language='javascript'>$tel_fixe_3</script>";
    					$tel_port_4 = $_POST['tel_port_4'];	echo "<script language='javascript'>$tel_fixe_4</script>";
    					$tel_port_5 = $_POST['tel_port_5'];	echo "<script language='javascript'>$tel_fixe_5</script>";
    					$tel_port_6 = $_POST['tel_port_6']; echo "<script language='javascript'>$tel_fixe_6</script>";
     
    					$numero_ss_1 = $_POST['numero_ss_1'];
    					$numero_ss_2 = $_POST['numero_ss_2'];
    					$numero_ss_3 = $_POST['numero_ss_3'];
    					$numero_ss_4 = $_POST['numero_ss_4'];
    					$numero_ss_5 = $_POST['numero_ss_5'];
    					$numero_ss_6 = $_POST['numero_ss_6'];
    					$numero_ss_7 = $_POST['numero_ss_7'];
     
    					$jour_naissance = $_POST['jour_naissance'];
    					$mois_naissance = $_POST['mois_naissance'];
    					$annee_naissance = $_POST['annee_naissance'];
    					$lieu_naissance = $_POST['lieu_naissance'];
    					$dep_naissance = $_POST['dep_naissance'];
    					$nationalite = $_POST['nationalite']; echo "<script language='javascript'>$nationalite</script>";
    					$profession = $_POST['profession']; echo "<script language='javascript'>$profession</script>";
    					$nom_marital = $_POST['nom_marital']; echo "<script language='javascript'>$nom_marital</script>";
     
    					$nom = strtoupper($nom);
    					$nom_marital = strtoupper($nom_marital);
    					$prenom = ucwords(strtolower($prenom));
    					$nom_naissance = strtoupper($nom_naissance);
     
    					$tel_fixe = $tel_fixe_1." ".$tel_fixe_2." ".$tel_fixe_3." ".$tel_fixe_4." ".$tel_fixe_5." ".$tel_fixe_6;
    					$tel_port = $tel_port_1." ".$tel_port_2." ".$tel_port_3." ".$tel_port_4." ".$tel_port_5." ".$tel_port_6;
    					$date_naissance = $jour_naissance."/".$mois_naissance."/".$annee_naissance;
    					$numero_ss = $numero_ss_1." ".$numero_ss_2." ".$numero_ss_3." ".$numero_ss_4." ".$numero_ss_5." ".$numero_ss_6." ".$numero_ss_7;
     
    					$niveau = $_POST['niveau'];
    					$position = $_POST['position'];
    					$statut = $_POST['statut'];
    					$ville_mission = $_POST['ville_mission'];
    					$departement_mission = $_POST['departement_mission'];
    					$code_emploi = $_POST['code_emploi'];
    					$situation = $_POST['situation'];
    					$plus = $_POST['plus'];
    					$level = $_POST['level'];
     
    					if($login<>'' and $password<>'')
    					{
    							mysql_query("INSERT INTO `t_login` (`nom`, `prenom`, `civilite`, `login`, `password`, `level`) VALUES ('$nom', '$prenom', '$civilite', '$login', '$password', '$level')");
    							$requete = mysql_query("SELECT * FROM t_login WHERE nom='$nom' AND prenom='$prenom'");
    							$resultat = mysql_fetch_assoc($requete);
    							$id_login = $resultat['id_login'];
    							mysql_query("UPDATE t_login SET `nom_marital`='$nom_marital' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `numero_ss`='$numero_ss' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `plus`='$plus' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `situation`='$situation' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `code_emploi`='$code_emploi' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `departement_mission`='$departement_mission' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `ville_mission`='$ville_mission' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `statut`='$statut' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `position`='$position' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `date_naissance`='$date_naissance' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `dep_naissance`='$dep_naissance' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `nationalite`='$nationalite' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `tel_port`='$tel_port' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `tel_fixe`='$tel_fixe' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `email`='$email' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `adresse_1`='$adresse_1' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `adresse_2`='$adresse_2' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `adresse_3`='$adresse_3' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `profession`='$profession' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `niveau`='$niveau' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `position`='$position' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `statut`='$statut' WHERE id_login='$id_login'");
    							mysql_query("UPDATE t_login SET `etat`='1' WHERE id_login='$id_login'");
    							echo "<div class='textbleu' align='center'>Utilisateur ajouté.</div>";
    					}
    					else
    					{
    						echo "<div class='textbleu' align='center'>Il faut obligatoirement saisir un login et un mot de passe.</div>";
    					}
    					?>		  
    </body>
    </html>
    Pour information, je peut contourner le problème en stockant mes variables de session en début de page et en les réaffectant en fin de page mais ça me paraît assez moche comme solution XD

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Il te manque un

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

    dans le code que tu nous fournis

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 104
    Par défaut
    en fait il est la mais comme je n'ai pas copié tout le code, il est passé a la trappe XD

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    A ce moment là, mets nous ton code entier stp car il n'y a même pas d'appels aux sessions dans le code fourni

Discussions similaires

  1. Ecran bleu lors de changement de session
    Par trizek dans le forum Mac OS X
    Réponses: 0
    Dernier message: 11/10/2011, 02h34
  2. Icones et changement de sessions
    Par Joccy dans le forum MFC
    Réponses: 3
    Dernier message: 16/11/2010, 16h10
  3. Changement de session quand nouvel onglet
    Par Enthau dans le forum Langage
    Réponses: 4
    Dernier message: 11/06/2010, 13h18
  4. [Cookies] Changement de session invonlontaire
    Par gregetso dans le forum Langage
    Réponses: 5
    Dernier message: 13/11/2008, 13h30
  5. [JSP] Changements de sessions Http
    Par nezdeboeuf62 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/09/2008, 15h24

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