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 :

Modification de $_SESSION


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut Modification de $_SESSION
    Bonjour,

    j'ai un soucis, j'ai crée une page sur laquelle il y a un formulaire, dans ce formulaire, un champ caché (hidden) récupéré les variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ($_SESSION['nom']) .' '. ($_SESSION['prenom']) .' '. ($_SESSION['login']);
    qui sont contenu dans accueil.php

    pour les transmettre à la base de donnée, jusque là aucun soucis, l'enregistrement s'effectue dans la base de donnée sans soucis avec le nom, prénom et matricule correct.

    Mais après avoir cliquer sur "envoyer" du formulaire, la variable ($_SESSION['nom']) devient vide,
    je m'en suis rendu compte en incluant cette ligne dans ma page: ce qui me donne ça :
    Array ( [authentification] => [privilege] => user [nom] => [prenom] => Laurent [login] => KNU0040 [pass] => 9a1a7b15e090758010579386d8a6f53e )

    Ce qui est bizarre c'est que en local ça fonctionne, mais pas sur le net, je pense que le soucis viens du code de la page qui me modifie ma session nom de la page accueil,
    si vous pouvez m'aider merci beaucoup

    voici le code de la page qui contient le formulaire :
    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
    <? include("accueil.php");
    include("connexionAUT.php");
    ?>
     
    <?
    //Voici les deux tableaux des jours et des mois traduits en français
    $nom_jour_fr = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
    $mois_fr = Array("", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", 
            "septembre", "octobre", "novembre", "décembre");
    // on extrait la date du jour
    list($nom_jour, $jour, $mois, $annee) = explode('/', date("w/d/n/Y"));
     
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
              <title>Complément de garde</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           </head>
     
        <body>
    <h3><a href="rh.php"><img src="png/48x48/back.png" alt="" width="48" height="48" border="0"></a></h3>
    <!-- <h3>Complément de garde pour le mois de <?//echo "$mois_fr[$mois] $annee"; ?><h3> -->
    <h3><center><? echo 'Complément de garde pour le mois de ', $mois_fr[$mois], ' ', $annee ,' de ',  $code; ?></center><h3>
    <?php
    print_r($_SESSION);
    mysql_connect($hostname, $username, $password);
    mysql_select_db($database);
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
    {
        // On protège la variable "modifier_news" pour éviter une faille SQL
        $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
        // On récupère les infos de la news correspondante
        $retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
        // On place le titre et le date dans des variables simples
        $titre = stripslashes($donnees['titre']);
    	$nom = stripslashes($donnees['nom']);
        $date = stripslashes($donnees['date']);
    	$creneau = stripslashes($donnees['creneau']);
    	$etat = stripslashes($donnees['etat']);
    	$signature = stripslashes($donnees['signature']);
        $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rédige une nouvelle news
    {
        // Les variables $titre et $date sont vides, puisque c'est une nouvelle news
        $titre = '';
    	$nom = '';
        $date = '';
    	$creneau = '';
    	$etat = 'Envoyé';
    	$signature = '';
        $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>
     
    <div align="center">
      <table width="447" height="218" border="0">
        <tr>
          <td width="437"><form action="liste_news.php" method="post">
    <input type="hidden" rows="3" size="120" name="titre" value="Complément de garde pour le mois de <?php echo "$mois_fr[$mois] $annee";?>" />
    <input type="hidden" rows="3" size="120" name="nom" value="<? echo $code; ?>" />
    <p align="left"><strong>Date :</strong> 
      <input onClick="ds_sh(this);" name="date" readonly="readonly" style="cursor: text" value="<?php echo $date; ?>"/></p>
    <p align="left"><strong>Creneau horaire :</strong> 
      <select name="creneau" size="1"><option><option>24h<option>8/20h jour<option>20h/8h nuit<option>8/15<option>15/22<option>22/8<option>17/22h</select></p>
    <p align="left"><input type="hidden" size="30" name="etat" value="<?php echo $etat; ?>" /></p>
    <p align="left"><input type="hidden" size="120" name="signature" value="<?php echo $signature; ?>" /></p>
     
     
        <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
        <center><input type="submit" value="Envoyer" /></center>
    </p>
    </form></td>
        </tr>
      </table>
    </div>
     
    </body>
    </html>
    et voici la page accueil.php :
    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
    <?php require_once('connexion.php'); 
    include("connexionAUT.php");
    ?>
    <?php session_start(); // On relaye la session
    if (session_is_registered("authentification")){ // vérification sur la session authentification (la session est elle enregistrée ?)
    // ici les éventuelles actions en cas de réussite de la connexion
    }
    else {
    header("Location:index.php?erreur=intru"); // redirection en cas d'echec
    }
    ?>
     
    <html>
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Refresh" content="20" />
     
    <head>
    	<title>Sape,jsdkjfksdf</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
    </head>
     
    <body>
     
    <div id="main">
        <div id="site">
            <div id="top">
                <ul class="Style4" id="navigation">
                     <div align="left">
                        <h1 class="bloc">R&eacute;alisati</h1>
                  </div>
              </ul>
          </div>
          <div id="container">
            <div class="bloc">
                  <h3 align="left" class="style15"><span class="style16">Bienvenue</span> <span class="style14"><?php echo $_SESSION['nom']; ?> 
                <?php echo $_SESSION['prenom']; ?></span> <span class="style16">dans votre espace s&eacute;curis&eacute;. </span></h3>
    <p class="Style4"><span class="style16">Vous &ecirc;tes connect&eacute; en tant que</span> &quot;<span class="style14"><?php echo $_SESSION['login']; ?></span>&quot; <span class="style16">avec le privil&egrave;ge</span> &quot;<span class="style14"><?php echo $_SESSION['privilege']; ?></span>&quot;</p>
    <div id="rtt">
                <a href="index.php?erreur=logout" class="rtt" title=""><strong><img src="png/24x24/block.png" width="24" height="24" border="0" align="right"></strong></a></div>
                <div id="rff">
                <strong><p>
     
    <?
    $code = ($_SESSION['nom']) .' '. ($_SESSION['prenom']) .' '. ($_SESSION['login']);
     
    mysql_connect($hostname, $username, $password);
    mysql_select_db($database);
     
    $user = "SELECT count(id) from mail where destinataire='$code'";
    $seru = mysql_query($user) or die (mysql_error());
    $mailuser = mysql_fetch_row($seru);
     
    $rh = "SELECT count(id) from mail where destinataire='Les ressources humaines'";
    $gr = mysql_query($rh) or die (mysql_error());
    $mailgrh = mysql_fetch_row($gr);
     
    $que = "SELECT count(id) from remplacement where remplacant='$code' AND accepte=''";
    $qui = mysql_query($que) or die (mysql_error());
    $remplac=mysql_fetch_row($qui);
     
    ?>
     
                  <?php 
     
    /*
    --- AFFICHAGE CONDITIONNEL OU REDIRECTION EN FONCTION DU PRIVILEGE ---
    	Config actuelle : le script gère un affichage conditionnel
    	Pour rediriger l'utilisateur en fonction de son privilege, ajoutez les lignes suivantes aux endroits indiqués
    	Dans la zone d'affichage admin : 
    			header("Location:URL SI ADMIN")
    	Dans la zone d'affichage admin : 
    			header("Location:URL SI USER SIMPLE")
    			
    Note: pour ajouter des privilèges, editez ce fichier en rajoutant une condition d'affichage
    et editez le fichier admin.php en ajoutant à la liste "select" un privilege.
    */
     
     
      // si l'utilisateur est connecté comme admin ...
      if($_SESSION['privilege'] == "admin") { // Affichage conditionnel : si et seulement si l'utilisateur est connecté avec le privilege administrateur ?>
                <strong><a href="admin.php" target="_parent"><img src="png/48x48/user.png" width="48" height="48" border="0"></a></strong>
                <?php } // fin de l'affichage conditionnel?>
                <p class="Style4">
                  <?php 
      // si l'utilisateur est connecté comme simple utilisateur ...
      if($_SESSION['privilege'] == "user") { // Affichage conditionnel : si et seulement si l'utilisateur est connect&eacute; avec le privilege utilisateur simple ?>
                  <? //<strong><a href="sport.php?nom= METTRE BALISE PHP '$nomi'; METTRE BALISE PHP">--Résultats sportifs--</a></strong> ?>
                  <strong><a href="RH.php" target="_parent"><img src="png/48x48/comments.png" width="48" height="48" border="0"></a></strong> <strong><a href="mail.php" target="_parent"><img src="png/48x48/user.png" width="48" height="48" border="0"></a></strong> <span class="style17 Style2"><? echo $remplac[0]; ?></span> <strong><a href="upload/Planning Internet.htm" target="_blank"><img src="png/48x48/calendar.png" width="48" height="48" border="0"></a></strong> <strong><a href="liste_perso.php" target="_parent"><img src="png/48x48/info.png" width="48" height="48" border="0"></a></strong> <strong><a href="liste_mail_user.php" target="_parent"><img src="png/48x48/mail_receive.png" width="48" height="48" border="0"></a></strong><span class="style17 Style2"><? echo $mailuser[0]; ?></span>
                  <?php } // fin de l'affichage conditionnel?>
                  <?php 
      // si l'utilisateur est connecté comme simple utilisateur ...
      if($_SESSION['privilege'] == "GRH") { // Affichage conditionnel : si et seulement si l'utilisateur est connect&eacute; avec le privilege utilisateur simple ?>
                  <? //<strong><a href="sport.php?nom= METTRE BALISE PHP '$nomi'; METTRE BALISE PHP">--Résultats sportifs--</a></strong> ?>
                  <a href="boite_rh.php" target="_parent"><img src="png/normal/brief_48.png" width="48" height="48" border="0"></a> <strong><a href="boite_rh_recherche.php" target="_parent"><img src="png/48x48/search_page.png" width="48" height="48" border="0"></a></strong> <strong><a href="upload_rh.php" target="_parent"> <img src="png/48x48/refresh.png" border="0"></a></strong> <strong><a href="liste_personnel.php" target="_parent"><img src="png/48x48/users.png" width="48" height="48" border="0"></a></strong> <strong><a href="liste_mail_rh.php" target="_parent"><img src="png/48x48/mail_receive.png" width="48" height="48" border="0"></a></strong><span class="style17 Style2"><? echo $mailgrh[0]; ?></span>
                  <?php } // fin de l'affichage conditionnel?></p>
              </div>
                <? // <p class="Style4">Votre mot de passe est &quot;<span class="Style8"><?php echo $_SESSION['pass']; </span>&quot; (crypt&eacute; par MD5)</p> // 
    ?>
            </div>
                </div>
            <p align="left" class="Style4 Style3">&nbsp;</p>
    </div>
    </div>
     
    </body>
    </html>

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    déjà n'utilise plus la fonction "session_is_registered" mais plutôt "isset($_SESSION['...'])"
    il y marqué dans la documentation "Cette fonction est OBSOLETE depuis PHP 5.3.0 et a été SUPPRIMEE depuis PHP 6.0.0. Nous vous encourageons vivement à ne plus l'utiliser." : http://php.net/session_is_registered

    ensuite j'ai vu des attribut "target", est ce que tu utilises des frames ?
    GNAP !

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    j'ai remarque que sur easy php dans le fichier de config que register_globals est sur off, tandis que sur mon site register_globals est sur on, vous pensez que le problème peut venir de là ?

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    non j'utilise pas de frame, les pages s'affiche sous accueil.php
    ok pour session is registered.

  5. #5
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    sur la page de la fonction http://php.net/session_is_registered tu verras qu'il y a une liste de fonction dans le même genre à ne plus utiliser
    est ce que tu passes bien par le tableau $_SESSION quand tu utilises les variables de session et non les fonctions obsolètes ?
    GNAP !

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    a vrai dir je ne pense pas que le soucis vienne de là, étant donné que en local, tous fonctionne ! ca serai plutot le code de la page ou est situé le formulaire qui crée un trouble et supprime la session[nom]
    tu pense pas ?

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    c'est bon j'ai trouvé en faite j'ai renomme ma $session[nom] en $session[name] et ca marche, je pense que c'été confondu avec la variable $nom.
    enfin merci quand méme pour votre aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2014, 19h12
  2. [VB6] modification de menu
    Par rikko23 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/11/2002, 21h30
  3. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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