Profil des membres d'un site

Fermé
Gui4671 Messages postés 33 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019 - 4 avril 2019 à 21:02
jordane45 Messages postés 38294 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 - 7 avril 2019 à 18:42
Bonjour à tous,
J'ai crée une page avec le dossier des membres de mon site... Sur cette page, ils peuvent voir les informations qu'on a sur eux (les infos sont dans une BDD). Je souhaite que ces personnes puissent modifier certaines de leur informations.

Voici mon code: (page mes informations (mesinfos.php))
<?php 
  //affichage des erreurs PHP:
  error_reporting(E_ALL);
  ini_set('display_errors', TRUE);
  ini_set('display_startup_errors', TRUE);


  include('haut.php'); //page pour savoir qui est connecté
  include('membres/debut2.php'); //page pour se connecter et modifer la BDD des membres
 

  //récupération des variables: 
  $identifiant_utilisateur = !empty($_SESSION['user']['identifiant']) ? $_SESSION['user']['identifiant'] : NULL;
  $password = !empty($_POST['password']);
  $confirmation = !empty($_POST['passwordconfirm']);


  if($identifiant_utilisateur) { //s'il y a bien un identifiant utilisateur en session
 
    $sql = "SELECT A.*
                ,M.*
                ,C.*
          FROM aide A 
          LEFT JOIN membres M ON M.id =A.IDmembre
          LEFT JOIN clients C  ON C.id = M.IDclient
          WHERE A.IDmembre = :user";
    $datas = array(':user'=>$identifiant_utilisateur);
   
    //Execution de la requete
    try{
      $requete = $pdo -> prepare($sql) ;
      $requete->execute($datas) ;
      $infos = $requete->fetchAll(); // on stocke le resultat de la requête dans un array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       echo " Les datas : " ;
       print_r($datas);
    } 
  }
?>

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Mes informations</title>
  <style>
    header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;}
    ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;}
    ul#menu_horizontal {list-style-type : none;}
    section {text-align:center;}
    ul#menuprofil {list-style-type : none;} 
    ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;}
    .menuprofila {color: blue;}
    .menuprofila:hover {color: red;}
    h4 {text-align: center;}
    h3 {text-align: center;}
    table {text-align: center;}
    h2 {text-align: center;}
    p {text-align: center; margin-left: 2%; margin-right: 2%;}
    footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;}
  </style>
  <link rel="stylesheet" href="style/body_membres.css">
      
  <!--Style pour le dossier des membres-->
  <link rel="stylesheet" href="cssmembres.css">
</head>


<body>
  <!--Script pour le design des ancres. Montée et desecende animée-->
  <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script>
  <!--Script pour faire apparaitre et disparaitre les formulaires de modifications d'informations dans les dossiers.-->
  <script type="text/javascript">
    function masquer_div(id)
    {
    if (document.getElementById(id).style.display == 'none')
    {
       document.getElementById(id).style.display = 'block';
    }
    else 
    {
       document.getElementById(id).style.display = 'none';
    }
    }
  </script>


  <!--PARTIE 1: INTRODUCTION-->
  <br>
  <header>
    <br>
    <h1>Tous unis contre le suicide</h1>
    <h2>Mes informations (Mon profil):</h2>
    <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.-->
    </header>
      
  <br>    


      
  <!--PARTIE 2: SOUS-INTRODUCTION (explications et sous-menus)-->
  <section>  
    <?php
      //pour obtenir le dossier membre afin de recuperer le prénom pour la ligne 103
      $query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"';
      $infos_membre = $pdo->query($query)->fetch();
    ?>             
    <div id="menu">
      <h3><?php echo $infos_membre['prenom'];?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3>
      <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4>
      <br>
      <ul id="menuprofil"><!--Menu pour cette page-->
        <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li>
        <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li>
        <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li>
        <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li>
      </ul>
    </div>
  </section>


      
  <!--PARTIE 3: DOSSIER MEMBRE-->  
  <div id="1">  
    <?php
    //pour voir le contenu de la requête .....
    $query = 'SELECT * FROM membres WHERE id="'.$identifiant_utilisateur.'"';
    $infos_membre = $pdo->query($query)->fetch();
    ?>
    <br>
    <span class="A">
      <h2><u>Mon dossier:</u></h2><!--Affiche les informations du dossier listées dans la table 'membres'-->
      <h4>Ce dossier sera mis à jour par un gestionnaire si celui-ci a été averti de modifications.<br>
      Vous avez également la permission de modifier vos données conformément aux lois en vigueur.</h4>
    </span>
    <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
      <caption>Informations générales:</caption>
      <tr>
          <td width="50%">Nom:</td>
          <td colspan="2"><?php echo $infos_membre['nom']; ?></td>
      </tr>
      <tr>
          <td width="50%">Prénom:</td>
          <td colspan="2"><?php echo $infos_membre['prenom']; ?></td>
      </tr>
      <tr>
          <td width="50%">Date de naissance:</td>
          <td colspan="2"><?php echo $infos_membre['date_naissance']; ?></td>
      </tr>
      <tr>
          <td width="50%">Domiciliation:</td>
          <td colspan="2"><?php echo $infos_membre['domiciliation']; ?></td>
      </tr>
      <tr>
          <td width="50%">Profession:</td>
          <td width="20%"><?php echo $infos_membre['profession']; ?></td>
          <td width="30%">
<!-- DE ICI -->
            <div id="modifprofession" style="display:none">
            <?php 
                if(!empty($_POST)) {
                if(!isset($_POST['profession']) || empty($_POST['profession'])) {
                    echo "<div class='bandeau bandeau-error'>Merci de renseigner le profession actuelle.</div>";
                    $valid=false;
                } else {
                  $profession = htmlspecialchars($_POST['profession']);
                  $ID = $infos_membre['ID'];
                  $res = modif_profession($pdo, $profession, $ID);
                  if($res) {
                          echo "<div class='bandeau bandeau-success'>L'information a bien été mise à jour!</div>";
                      } else {                        
                          echo "<div class='bandeau bandeau-error'>Une erreur est survenue. Contactez l'administrateur!</div>";
                      }
                    }
                  }
              ?>
              <form action="" method="POST">
                <p>
                  <input type="text" name="profession" placeholder="Profession actuelle" required/>    
                  <input type="submit" value="Valider" />
                </p>
              </form>
            </div>
            <input type="button" value="Mettre à jour sa profession" onclick="masquer_div('modifprofession');" />
          </td>
      </tr>
    </table>
<!-- JUSQU'ICI -->

    <br>

    <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1">
      <caption>Informations supplémentaires:</caption>
      <tr>
        <td width="50%">Date d'inscription:</td>
        <td colspan="2"><?php echo $infos_membre['dateinscription']; ?></td>
      </tr>
      <tr>
        <td width="50%">Dernière mise à jour:</td>
        <td colspan="2"><?php echo $infos_membre['mise_a_jour']; ?></td>
      </tr>
      <tr>
        <td width="50%">ID:</td>
        <td colspan="2"><?php echo $infos_membre['ID']; ?></td>
      </tr>
      <tr>
<!-- DE ICI -->
        <td width="50%">Statut:</td>
        <td width="20%"><?php echo $infos_membre['statut']; ?></td>
        <td width="30%">
          <div id="modifstatut" style="display:none">
            <?php 
              if(!empty($_POST)) {
                $statut = htmlspecialchars($_POST['statut']);
                $ID = $infos_membre['ID'];
                $res = modifstatut($pdo, $statut, $ID);
                if($res) {
                        echo "<div class='bandeau bandeau-success'>L'information a bien été mise à jour!</div>";
                    } else {                        
                        echo "<div class='bandeau bandeau-error'>Une erreur est survenue. Contactez l'administrateur!</div>";
                    }
                  }
            ?>
            <form action="" method="POST">
              <p>
                <select name="statut" id="modifstatut">
                  <option value="Disponible" >Disponible</option>
                  <option value="Indisponible">Indisponible</option>
                  <option value="Attente" selected>Veuillez choisir une option</option>
                </select>
                <input type="submit" value="Valider" />
              </p>
            </form>
          </div>
          <input type="button" value="Modifier son statut" onclick="masquer_div('modifstatut');" />
        </td>
      </tr>
    </table>
<!-- JUSQU'ICI -->
    <br>

    <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
      <caption>Points de contact:</caption>
      <tr><td width="45%">Adresse email:</td><td><?php echo $infos_membre['email']; ?></td><td width="15%"><?php echo $infos_membre['statutemail']; ?></td></tr> 
      <tr><td width="45%">Téléphone:</td><td><?php echo $infos_membre['tel']; ?></td><td width="15%"><?php echo $infos_membre['statuttel']; ?></td></tr>
    </table>

    <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
      <caption>Points de contact supplémentaire:</caption>
      <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact']; ?></td><td width="15%"><?php echo $infos_membre['statutautre1']; ?></td></tr>
      <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact2']; ?></td><td width="15%"><?php echo $infos_membre['statutautre2']; ?></td></tr>
    </table>
            
    <br>

    <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
      <caption>Aides:</caption>
      <tr><td width="50%">Domaines d'aides:</td><td><?php echo $infos_membre['aide']; ?></td></tr>
      <tr><td width="50%">Domaines d'aides supplémentaires:</td><td><?php echo $infos_membre['aidesupp']; ?></td></tr>
    </table>

    <br>
            
    <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
      <caption>Divers:</caption>
      <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_membre['commentaire']; ?></td></tr>
    </table>

    <br>

    <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
      <caption>Finance:</caption>
      <tr><td width="50%">Participation aux frais:</td><td><?php echo $infos_membre['frais']; ?></td></tr>
      <tr><td width="50%">Montant de la participation:</td><td><?php echo $infos_membre['montant']; ?></td></tr>
    </table>
  </div>

  <br>
  <br>
        <div class="fleche" align="center">
          <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png"
              alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]"
              height="125px" 
              width="75px"
            ></a>
          <p>(Clic sur la flèche pour retourner en haut de page)</p>
        </div>
</body>
<html>


Afin que les membres puissent modifier leurs informations, j'ai déjà mis à quelques endroits (j'en ai entouré deux de ''ICI'' à ''ICI'') des formulaires pour modifier l'infos...

Mais pour faire changer l'informations dans ma BDD, ça se complique... Voici ma page qui se connecte à ma BDD et qui contient les fonctions:
<?php
$host_name = 'db770114383.hosting-data.io';
$database = 'db770114383';
$user_name = 'dbo770114383';
$password = 'MON MDP';
  try {
  $pdo = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password);
    $pdo->exec('SET NAMES utf8');
} catch (PDOException $e) {
  echo "Erreur!: " . $e->getMessage() . "<br/>";
  die();  
}

function modifstatut ($pdo, $statut, $ID) 
{
    try {
        $stmt = $pdo->prepare("UPDATE membres SET statut=:statut WHERE ID=:ID;");
        $stmt->bindParam(':statut', $statut);
        $stmt->bindParam(':ID', $ID);
        $stmt->execute();
            return true;
    } catch(Exception $e) {
        return false;
    }
}

function modif_profession ($pdo, $profession, $ID) 
{
    try {
        $stmt = $pdo->prepare("UPDATE membres SET profession=:profession WHERE ID=:ID;");
        $stmt->bindParam(':profession', $profession);
        $stmt->bindParam(':ID', $ID);
        $stmt->execute();
            return true;
    } catch(Exception $e) {
        return false;
    }
}

?>


Mes deux fonctions fonctionnent très bien séparement mais quand je les mets toutes les deux, ça ne fonctionne plus... (Et je compte avoir une dizaine de fonction similaire) Si je mets une fonction en POST et l'autre en GET, ça fonctionne mais vu que j'en ai plus que 2, ça me pose un gros soucis.

Auriez-vous une idée du problème? Une solution?

Bien à vous, et merci d'avance pour vos idées, remarques, conseils, solutions, etc.
Guillaume.

Configuration: Windows / Firefox 66.0
A voir également:

2 réponses

jordane45 Messages postés 38294 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704
4 avril 2019 à 22:45
Bonjour,

Déjà, comme je te l'ai déjà indiqué, la fonction htmlspecialchar ne s'utilise que pour l'affichage..... mais jamais lors de l'enregistrement dans une BDD....

Ensuite, la fonction empty fait déjà un isset ... donc
if(!isset($_POST['profession']) || empty($_POST['profession'])) {

revient à
if(empty($_POST['profession'])) {


Je t'invite également à placer le maximum de code php ( entre autres choses... le code qui sert à traiter tes submit ) au début de ton code AVANT le code html.

Je t'invite également à poursuivre dans l'utilisation des fonctions, et donc, à placer le code de ton select (celui du début....) dans une fonction également.

Il faudra également nous préciser plus en détail en quoi, le fait de mettre les "deux" ne fonctionne pas....(message d'erreur ? comportement constaté VS escompté ? )
Mais bon, une fois ton code réécrit correctement en tenant compte de mes remarques, le souci aura peut-être disparu......


0
Gui4671 Messages postés 33 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019
6 avril 2019 à 17:55
Bonjour,
- Je sais que tu me l'as déjà dit pleins de fois et que mon erreur reste sur de nombreuses pages... Je dois juste enlever 'htmlspecialchar' ou dois-je le remplacer par autre chose.
- Concernant les empty et isset, j'ai modifié.
- Concernant les codes php au début de la page, j'ai lu que c'était juste pour la rapidité... Est-ce juste?
- Je n'ai pas compris ton conseil avec les fonctions.


En fait si je change le statut (deuxième fonction), ça fonctionne bien. Puis je change ma profession, ça fonctionne et la nouvelle s'affiche mais à ce moment là, mon statut s’efface de la page (mais pas de ma BDD)

Quand je change mon statut puis ma profession et que je veux rechanger mon statut, j'ai une erreur: Notice: Undefined index: statut in /homepages/22/d767857963/htdocs/V2tousmembres/site_membres/mesinfos.php on line 229. (La ligne 229 est égal à la ligne 216 ci-dessus)

Bien à toi
0
yg_be Messages postés 23338 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 novembre 2024 1 551 > Gui4671 Messages postés 33 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019
6 avril 2019 à 18:49
bonjour, tu utilises $_POST['statut'] sans avoir testé qu'il était présent.
0
jordane45 Messages postés 38294 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704
Modifié le 6 avril 2019 à 19:30
Bon....

Mettre le PHP au début n'est pas une question de rapidité .... c'est une question de clarté.... d'organisation...
Cela permet une lecture plus facile du code et donc améliore grandement sa maintenabilité et son éventuelle évolutivité.

Idem pour le découpage du code en "fonctions".


Quoi qu'il en soit..
Premier fichier :
<?php
/**
*  Fichier  fonctions_utilisateur.php"
*/


/**
* Connexion à la BDD
*/
function cnxBdd(){
  $host_name = 'db770114383.hosting-data.io';
  $database = 'db770114383';
  $user_name = 'dbo770114383';
  $password = 'MON MDP';
  try {
    $pdo = new PDO("mysql:host=$host_name; dbname=$database;charset=utf8", $user_name, $password);
    // Activation des erreurs PDO
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  } catch (PDOException $e) {
    echo "Erreur!: " . $e->getMessage() . "<br/>";
    die();  
  }
  
  //on retourne l'objet PDO
  return $pdo; 
}

/**
* Récupère les informations d'un utilisateur
*/
function getMembreClient($identifiant){
  $pdo = cnxBdd();
  $sql = "SELECT A.*
                ,M.*
                ,C.*
          FROM aide A 
          LEFT JOIN membres M ON M.id =A.IDmembre
          LEFT JOIN clients C  ON C.id = M.IDclient
          WHERE A.IDmembre = :user";
    $datas = array(':user'=>$identifiant);
   
    //Execution de la requete
    try{
      $requete = $pdo -> prepare($sql) ;
      $requete->execute($datas) ;
      $infos = $requete->fetchAll(); // on stocke le resultat de la requête dans un array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       echo " Les datas : " ;
       print_r($datas);
    } 
  return $infos;
}

function getMembre($identifiant){
 $pdo = cnxBdd();
 
  $sql = "SELECT * 
          FROM membres 
          WHERE id= :user";
  $datas =  array(':user'=>$identifiant);
  try{
      $requete = $pdo -> prepare($sql) ;
      $requete->execute($datas) ;
      $infos = $requete->fetch(); // on stocke la première ligne de resultat de la requête dans un array
    }catch(Exception $e){
      // en cas d'erreur :
       echo " Erreur ! ".$e->getMessage();
       echo " Les datas : " ;
       print_r($datas);
    } 
  return $infos;
}


function modifstatut ($statut, $ID) 
{
  
  $pdo = cnxBdd();  
  try {
    $stmt = $pdo->prepare("UPDATE membres SET statut=:statut WHERE ID=:ID;");
    $stmt->bindParam(':statut', $statut);
    $stmt->bindParam(':ID', $ID);
    $stmt->execute();
    return true;
  } catch(Exception $e) {
      return false;
  }
}

function modif_profession ($profession, $ID) 
{
  $pdo = cnxBdd();
  try {
    $stmt = $pdo->prepare("UPDATE membres SET profession=:profession WHERE ID=:ID;");
    $stmt->bindParam(':profession', $profession);
    $stmt->bindParam(':ID', $ID);
    $stmt->execute();
    return true;
  } catch(Exception $e) {
      return false;
  }
}



Second fichier (ton fichier actuel...)
<?php 
  //affichage des erreurs PHP:
  error_reporting(E_ALL);
  ini_set('display_errors', TRUE);
  ini_set('display_startup_errors', TRUE);
  
  require_once "fonctions_utilisateur.php";

  include('haut.php'); //page pour savoir qui est connecté
  include('membres/debut2.php'); //page pour se connecter et modifer la BDD des membres
 

  //récupération des variables: 
  $identifiant_utilisateur = !empty($_SESSION['user']['identifiant']) ? $_SESSION['user']['identifiant'] : NULL;
 
 
 
  if($identifiant_utilisateur) { 
    //s'il y a bien un identifiant utilisateur en session
    //$infos_membre = getMembreClient($identifiant_utilisateur); 
    $infos_membre = getMembre($identifiant_utilisateur);    
  }
  
  $nom = !empty($infos_membre['nom']) ? $infos_membre['nom'] : "";
  $prenom = !empty($infos_membre['prenom']) ? $infos_membre['prenom'] : "";
  $date_naissance = !empty($infos_membre['date_naissance']) ? $infos_membre['date_naissance'] : "";
  $domiciliation = !empty($infos_membre['domiciliation']) ? $infos_membre['domiciliation'] : "";
  $profession = !empty($infos_membre['profession']) ? $infos_membre['profession'] : "";
  $dateinscription = !empty($infos_membre['dateinscription']) ? $infos_membre['dateinscription'] : "";
  $mise_a_jour = !empty($infos_membre['mise_a_jour']) ? $infos_membre['mise_a_jour'] : "";
  $statut = !empty($infos_membre['statut']) ? $infos_membre['statut'] : "";
  $ID = !empty($infos_membre['ID']) ? $infos_membre['ID'] : "";
  $statutemail = !empty($infos_membre['statutemail']) ? $infos_membre['statutemail'] : "";
  $email = !empty($infos_membre['email']) ? $infos_membre['email'] : "";
  $tel = !empty($infos_membre['tel']) ? $infos_membre['tel'] : "";
  
  
  if(!empty($_POST)){ // si un formulaire a été soumis
   
   
    
    //si formuaire pour la modification de profession
    if(isset($_POST['profession')){
      $profession = !empty($_POST['profession'] ? $_POST['profession'] : NULL;
      if(!$profession) {
          $msg_modif_profession = "<div class='bandeau bandeau-error'>Merci de renseigner le profession actuelle.</div>";
      } else {
        $res = modif_profession($profession, $ID);
        if($res) {
          $msg_modif_profession =  "<div class='bandeau bandeau-success'>L'information a bien été mise à jour!</div>";
        } else {                        
          $msg_modif_profession =  "<div class='bandeau bandeau-error'>Une erreur est survenue. Contactez l'administrateur!</div>";
        }
      }
    }
    
    //si formuaire pour la modification de statut
    if(isset($_POST['modifstatut')){
      $statut = !empty($_POST['statut'] ? $_POST['statut'] : NULL;
      if(!$statut){
        $msg_modif_statut = "<div class='bandeau bandeau-error'>Merci de renseigner le statut actuelle.</div>";
      }else{
        $res = modifstatut($pdo, $statut, $ID);
        if($res) {
          $msg_modif_statut = "<div class='bandeau bandeau-success'>L'information a bien été mise à jour!</div>";
        } else {                        
          $msg_modif_statut =  "<div class='bandeau bandeau-error'>Une erreur est survenue. Contactez l'administrateur!</div>";
        }
      }           
    }
    
  }
  
?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Mes informations</title>
    <style>
      header {height: 210px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;}
      ul#menu_horizontal li { display : inline; padding : 0 0.5em; border: 1px blue;}
      ul#menu_horizontal {list-style-type : none;}
      section {text-align:center;}
      ul#menuprofil {list-style-type : none;} 
      ul#menuprofil li {display: inline; padding: 2em; border: 0.5px solid black;}
      .menuprofila {color: blue;}
      .menuprofila:hover {color: red;}
      h4 {text-align: center;}
      h3 {text-align: center;}
      table {text-align: center;}
      h2 {text-align: center;}
      p {text-align: center; margin-left: 2%; margin-right: 2%;}
      footer {height: 100px; border: 2px solid black; text-align: center; padding: 10px; margin: 5px;}
    </style>
    <link rel="stylesheet" href="style/body_membres.css">
    <!--Style pour le dossier des membres-->
    <link rel="stylesheet" href="cssmembres.css">
  </head>


  <body>
    <!--Script pour le design des ancres. Montée et desecende animée-->
    <script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/mesfonctions.js"></script>
    <!--Script pour faire apparaitre et disparaitre les formulaires de modifications d'informations dans les dossiers.-->
    <script type="text/javascript">
      function masquer_div(id)  {
        if (document.getElementById(id).style.display == 'none')    {
           document.getElementById(id).style.display = 'block';
        } else  {
           document.getElementById(id).style.display = 'none';
        }
      }
    </script>


    <!--PARTIE 1: INTRODUCTION-->
    <br>
    <header>
      <br>
      <h1>Tous unis contre le suicide</h1>
      <h2>Mes informations (Mon profil):</h2>
      <?php include ("header/menuprincipal.php");?><!--Affiche le menu dans l'encadré.-->
    </header>
        
    <br>    
    <!--PARTIE 2: SOUS-INTRODUCTION (explications et sous-menus)-->
    <section>         
      <div id="menu">
        <h3><?php echo $prenom;?>, vous vous trouvez sur votre profil... Cette page vous permet un accès rapide à votre dossier et aux dossiers dont vous avez l'autorisation par l'administrateur.</h3>
        <h4>Une partie de la FAQ se rapporte aux fonctionnalités de cette page, n'hésitez pas à aller la lire pour en savoir plus.</h4>
        <br>
        <ul id="menuprofil"><!--Menu pour cette page-->
          <li><a href="#1" class="scroll menuprofila">Accès à mon dossier</a></li>
          <li><a href="#4" class="scroll menuprofila">Accès aux dossiers de mes clients</a></li>
          <li><a href="#2" class="scroll menuprofila">Accès aux dossiers des aides</a></li>
          <li><a href="#3" class="scroll menuprofila">Voir mes informations de connexion</a></li>
        </ul>
      </div>
    </section>
    <!--PARTIE 3: DOSSIER MEMBRE-->  
    <div id="1">  
      <br>
      <span class="A">
        <h2><u>Mon dossier:</u></h2><!--Affiche les informations du dossier listées dans la table 'membres'-->
        <h4>Ce dossier sera mis à jour par un gestionnaire si celui-ci a été averti de modifications.<br>
        Vous avez également la permission de modifier vos données conformément aux lois en vigueur.</h4>
      </span>
      <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
        <caption>Informations générales:</caption>
        <tr>
            <td width="50%">Nom:</td>
            <td colspan="2"><?php echo $nom; ?></td>
        </tr>
        <tr>
            <td width="50%">Prénom:</td>
            <td colspan="2"><?php echo $prenom; ?></td>
        </tr>
        <tr>
            <td width="50%">Date de naissance:</td>
            <td colspan="2"><?php echo $date_naissance; ?></td>
        </tr>
        <tr>
            <td width="50%">Domiciliation:</td>
            <td colspan="2"><?php echo $domiciliation; ?></td>
        </tr>
        <tr>
            <td width="50%">Profession:</td>
            <td width="20%"><?php echo $profession; ?></td>
            <td width="30%">
              <div id="modifprofession" style="display:none">
              <?php 
                 echo $msg_modif_profession;
              ?>
              <form action="" method="POST">
                <p>
                  <input type="hidden" name="modifprofession" value="1">
                  <input type="text" name="profession" placeholder="Profession actuelle" required/>    
                  <input type="submit" value="Valider" />
                </p>
              </form>
            </div>
            <input type="button" value="Mettre à jour sa profession" onclick="masquer_div('modifprofession');" />
          </td>
        </tr>
      </table>
      <br>
      <table border="1" width="90%" align="center" cellspacing="0" cellpadding="1">
        <caption>Informations supplémentaires:</caption>
        <tr>
          <td width="50%">Date d'inscription:</td>
          <td colspan="2"><?php echo $dateinscription; ?></td>
        </tr>
        <tr>
          <td width="50%">Dernière mise à jour:</td>
          <td colspan="2"><?php echo $mise_a_jour; ?></td>
        </tr>
        <tr>
          <td width="50%">ID:</td>
          <td colspan="2"><?php echo $ID; ?></td>
        </tr>
        <tr>
          <td width="50%">Statut:</td>
          <td width="20%"><?php echo $statut; ?></td>
          <td width="30%">
            <div id="modifstatut" style="display:none">
              <?php 
              echo $msg_modif_statut;
              ?>
              <form action="" method="POST">
                <p>
                  <input type="hidden" name="modifstatut" value="1">
                  <select name="statut" id="modifstatut">
                    <option value="Disponible" >Disponible</option>
                    <option value="Indisponible">Indisponible</option>
                    <option value="Attente" selected>Veuillez choisir une option</option>
                  </select>
                  <input type="submit" value="Valider" />
                </p>
              </form>
            </div>
            <input type="button" value="Modifier son statut" onclick="masquer_div('modifstatut');" />
          </td>
        </tr>
      </table>
      <br>
      <!-- ------------------------------------------------------------------------------------------- -->
       <!-- JE TE LAISSE MODIFIER LES VARIABLES $infos_membre['......']  comme je l'ai fait au dessus ! -->
       <!-- ------------------------------------------------------------------------------------------- -->
      <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
        <caption>Points de contact:</caption>
        <tr><td width="45%">Adresse email:</td><td><?php echo $infos_membre['email']; ?></td><td width="15%"><?php echo $infos_membre['statutemail']; ?></td></tr> 
        <tr><td width="45%">Téléphone:</td><td><?php echo $infos_membre['tel']; ?></td><td width="15%"><?php echo $infos_membre['statuttel']; ?></td></tr>
      </table>

      <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
        <caption>Points de contact supplémentaire:</caption>
        <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact']; ?></td><td width="15%"><?php echo $infos_membre['statutautre1']; ?></td></tr>
        <tr><td width="20%">Autres:</td><td><?php echo $infos_membre['autrecontact2']; ?></td><td width="15%"><?php echo $infos_membre['statutautre2']; ?></td></tr>
      </table>    
      <br>
      <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
        <caption>Aides:</caption>
        <tr><td width="50%">Domaines d'aides:</td><td><?php echo $infos_membre['aide']; ?></td></tr>
        <tr><td width="50%">Domaines d'aides supplémentaires:</td><td><?php echo $infos_membre['aidesupp']; ?></td></tr>
      </table>
      <br>             
      <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
        <caption>Divers:</caption>
        <tr><td width="50%">Commentaires éventuels:</td><td><?php echo $infos_membre['commentaire']; ?></td></tr>
      </table>
      <br>
      <table border=1 width=90% align="center" cellspacing=0 cellpadding=1>
        <caption>Finance:</caption>
        <tr><td width="50%">Participation aux frais:</td><td><?php echo $infos_membre['frais']; ?></td></tr>
        <tr><td width="50%">Montant de la participation:</td><td><?php echo $infos_membre['montant']; ?></td></tr>
      </table>
    </div>
    <br>
    <br>
    <div class="fleche" align="center">
      <a href="#menu" class="scroll menuprofila"><img align="center" src="fleche.png"
          alt="[ABC Tech posssède 75% de part de marché et XYZ 25%]"
          height="125px" 
          width="75px"
        ></a>
      <p>(Clic sur la flèche pour retourner en haut de page)</p>
    </div>
  </body>
<html>


Tu remarqueras que j'ai placé des input hidden dans tes formulaire afin de pouvoir les identifier lors du submit et ainsi ne traiter que le formulaire voulu..
Perso.. j'aurai réalisé tout ces traitement en AJAX ... cela aurait, en plus, éviter de devoir recharger la page à chaque modification...

Je te laisse t'inspirer de ce code pour tes prochains... (en espérant ne pas avoir à te répéter encore les mêmes choses... )



0
Gui4671 Messages postés 33 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019
7 avril 2019 à 18:24
Bonjour,
Merci pour toutes ces précisions et avancées...

Je ne connais l'Ajax donc je ne saurai le faire avec ça... Tant que les fonctions fonctionnent, cela me va même s'il y a des inconvénients.

Cela fonctionne actuellement comme je le souhaite... J'ai juste un message d'erreur pour les deux fonctions.
J'ai celui-ci pour la premiere fonction: Notice: Undefined variable: msg_modif_profession in /homepages/22/d767857963/htdocs/V2tousmembres/site_membres/mesinfos.php on line 174

J'ai celui-ci pour la deuxieme fonction: Notice: Undefined variable: msg_modif_statut in /homepages/22/d767857963/htdocs/V2tousmembres/site_membres/mesinfos.php on line 209

Sais-tu comment les enlever?

Je vais me charger ce soir de faire la suite comme tu as fait le début et enregistrer tout dans ma tête pour mes prochaines pages à faire!


Encore merci pour l'avancée que tu fais dans notre projet.
0
jordane45 Messages postés 38294 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704 > Gui4671 Messages postés 33 Date d'inscription jeudi 24 janvier 2019 Statut Membre Dernière intervention 7 avril 2019
7 avril 2019 à 18:42
Tu dois les initialiser au début de ton code (par exemple sous la récupération des variables )
$msg_modif_profession = "";
$msg_modif_statut = "";
0