Partage
  • Partager sur Facebook
  • Partager sur Twitter

afficher masquer une div avec des conditions

Sujet résolu
    28 février 2024 à 1:21:50

    Bonjour,

    Je suis actuellement sur un projet d'étude, une plateforme d'hébergement ou les utilisateurs pourront louer ou mettre à louer leur bien et je suis coincée je pense sur un point simple.

    je voudrais lorsqu'un utilisateur poste une annonce que juste ses annonces soient visible sur son espace personnel et pas celle des autres.

    Je ne sais pas s'il faut utiliser plutôt javascript ou php.

    Voici le code:

    Merci à tous ceux qui m'aideront

    • Partager sur Facebook
    • Partager sur Twitter
      28 février 2024 à 14:34:01

      Salut. Sur la page personnel, en php, tu en recupére que l'annonce de l'utilisateur et voilà.

      Pour les prochaines fois, poste directement ton code sur le forum avec le bouton "</>" plutot qu'une image.

      • Partager sur Facebook
      • Partager sur Twitter
        28 février 2024 à 19:03:16

        Oui mais comment on fait pour récupérer juste l'annonce de l'utilisateur et qu'il n'y ai pas les annonces des autres utilisateurs?

        Je suis débutante en php donc je vois pas comment faire

        • Partager sur Facebook
        • Partager sur Twitter
          28 février 2024 à 22:19:20

          Au moment de ta requête sql ajoute une condition sur l'auteur, après sans savoir comment est fait ta base de donnée, ton code, c'est compliqué ^^
          • Partager sur Facebook
          • Partager sur Twitter
            28 février 2024 à 23:07:47 - Message modéré pour le motif suivant : Merci d’utiliser le bouton code pour insérer un code sur le forum


              29 février 2024 à 2:29:23

              Bonjour, Merci de lire les règles du forum AVANT de créer un sujet.

              Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
              Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

              Pour plus d'informations, nous vous invitons à lire les règles générales du forum

              Merci de colorer votre code à l'aide du bouton Code </>

              Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton  </> de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: php;">Votre code ici</pre>.

              Merci de modifier votre message d'origine en fonction.

              Liens conseillés

              • Partager sur Facebook
              • Partager sur Twitter
                1 mars 2024 à 0:37:08

                <?php
                
                
                
                session_start();
                
                @include 'conne.php';
                
                
                if(!isset($_SESSION['admin_name'])){
                   header('location:connexion.php');
                }
                
                ?>
                
                <!DOCTYPE html>
                <html lang="en">
                <head>
                   <meta charset="UTF-8">
                   <meta http-equiv="X-UA-Compatible" content="IE=edge">
                   <meta name="viewport" content="width=device-width, initial-scale=1.0">
                   <meta name="description" content="developpé par MD Web">
                   <title>Ajouter une annonce</title>
                
                
                
                    <!-- 
                    - favicon
                    -->
                
                
                     <link rel="favicon">
                
                
                
                
                <!-- 
                    - google font link 
                --> 
                <link rel="preconnect" href="https://fonts.googleapis.com">
                <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
                <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&display=swap" rel="stylesheet">
                <link href="https://fonts.googleapis.com/css2?family=Handlee&display=swap" rel="stylesheet">
                
                
                
                
                <!-- 
                    - google icon link 
                --> 
                <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0..1,0" />
                
                
                
                
                <!-- 
                    - custom css link 
                --> 
                <link rel="stylesheet" href="./assets/css/style3.css">
                
                
                
                
                <!-- 
                    - custom js link 
                --> 
                <script src="./assets/js/script.js" defer></script>
                
                
                
                
                <!-- 
                    - preload images
                --> 
                
                
                <head>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/Counter-Up/1.0.0/jquery.counterup.min.js"></script>
                
                </head>
                
                
                
                <body>
                    <section>
                        <a href="ajout_annonce.php" class="link">Ajouter une photo</a>
                        <?php
                            //inclure la page de connexion
                            include_once "conne.php";
                            //afficher la liste des photos qui sont dans la base de donnée
                            $req = mysqli_query($con , "SELECT * FROM images");
                
                            //verifier que la liste n'est pas vide
                            if(mysqli_num_rows($req) < 1){
                                ?>
                                <p class="vide_message">La liste des photos est vide.</p>
                
                            
                               <?php if(['name'] == ['admin_name']):?>
                                    <div class="box">
                                        <img class="img_principal" src="upload/<?=$row['img']?>">
                                        <div>Description: <?=$row['txt']?></div>
                                        <div>Titre de l'annonce: <?=$row['titre']?></div>
                                        <div>Votre nom: <?=$row['nom']?></div>
                                        <div>Localisation: <?=$row['localisation']?></div>
                                        <div>Prix: <?=$row['prix']?>€</div>
                                        <a class="delete_btn" href="delete.php?id=<?=$row['id']?>">
                                        <img src="remove.png">
                                        </a>
                                    </div>
                            
                                  <?php else: ?>
                                    <div class="box" style="display:none";>
                                  <?php endif; ?> 
                                
                                        
                                <?php
                            }
                
                            //afficher la liste des photos
                            while($row = mysqli_fetch_assoc($req)){
                                ?>         
                                    <div class="box">
                                        <img class="img_principal" src="upload/<?=$row['img']?>">
                                        <div>Description: <?=$row['txt']?></div>
                                        <div>Titre de l'annonce: <?=$row['titre']?></div>
                                        <div>Votre nom: <?=$row['nom']?></div>
                                        <div>Localisation: <?=$row['localisation']?></div>
                                        <div>Prix: <?=$row['prix']?>€</div>
                                        <a class="delete_btn" href="delete.php?id=<?=$row['id']?>">
                                        <img src="remove.png">
                                        </a>
                                    </div>
                                <?php
                            }
                        ?>
                
                    </section>
                </body>
                </html>sur 
                Voici mon code pour la page avec la liste des annonces mais je ne sais pas ou ni comment ajouter la fonction du nom de l'utilisateur
                • Partager sur Facebook
                • Partager sur Twitter
                  1 mars 2024 à 14:04:40

                  Ligne 93

                  $req = mysqli_query($con , "SELECT * FROM images");


                  https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913655-travaillez-avec-une-base-de-donnees

                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 mars 2024 à 0:11:28

                    J'ai réussi a filtrer certains éléments de mon annonce en revanche je n'arrive toujours pas à filtrer en fonction du nom de l'utilisateur qui est connecté

                     //inclure la page de connexion
                                include_once "conne.php";
                                //afficher la liste des photos qui sont dans la base de donnée
                                $req = mysqli_query($con , "SELECT * FROM images WHERE nom ='admin_name'");
                    
                    
                                //verifier que la liste n'est pas vide
                                if(mysqli_num_rows($req) < 1){
                                    ?>
                                    <p class="vide_message">La liste des photos est vide.</p>
                    
                                    



                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 mars 2024 à 12:55:07

                      Bonjour, 

                      Je pense que

                      WHERE nom ='admin_name'"

                      va demander à la requête d'aller chercher quelqu'un qui s'appelle littéralement "admin_name" ;

                      faudrait mieux qqch comme ceci :

                      WHERE nom ='".$_SESSION['admin_name']."'";

                      -
                      Edité par GBNet 5 mars 2024 à 13:02:13

                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 mars 2024 à 13:44:20

                        Hello,

                        GBNet a écrit:

                        Bonjour, 

                        Je pense que

                        WHERE nom ='admin_name'"

                        va demander à la requête d'aller chercher quelqu'un qui s'appelle littéralement "admin_name" ;

                        faudrait mieux qqch comme ceci :

                        WHERE nom ='".$_SESSION['admin_name']."'";

                        -
                        Edité par GBNet il y a 40 minutes


                        L'idée est bonne mais par contre il ne faut surtout pas mettre la variable directement. Il faut effectuer une requête préparé
                        • Partager sur Facebook
                        • Partager sur Twitter
                          11 mars 2024 à 20:19:33

                          Ca fonctionne mais j'ai un autre problème maintenant, lorsque l'utilisateur rempli le formulaire pour poster son annonce il doit rentrer son nom comme celui de l'admin, s'il ne l'orthographie pas correctement l'annonce ne s'affiche plus.

                          Du coup j'aimerai lors de la création de l'annonce que le nom de l'utilisateur qui est connecté s'affiche automatiquement sur la page "mes logements" mais je ne sais pas comment faire.

                          La page avec la liste des logements:

                          <?php
                          
                          
                          
                          session_start();
                          
                          @include 'conne.php';
                          
                          
                          if(!isset($_SESSION['admin_name'])){
                             header('location:connexion.php');
                          }
                          
                          ?>
                          
                          <!DOCTYPE html>
                          <html lang="en">
                          <head>
                             <meta charset="UTF-8">
                             <meta http-equiv="X-UA-Compatible" content="IE=edge">
                             <meta name="viewport" content="width=device-width, initial-scale=1.0">
                             <meta name="description" content="developpé par MD Web">
                             <title>Ajouter une annonce</title>
                          
                          
                          
                              <!-- 
                              - favicon
                              -->
                          
                          
                               <link rel="favicon">
                          
                          
                          
                          
                          <!-- 
                              - google font link 
                          --> 
                          <link rel="preconnect" href="https://fonts.googleapis.com">
                          <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
                          <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&display=swap" rel="stylesheet">
                          <link href="https://fonts.googleapis.com/css2?family=Handlee&display=swap" rel="stylesheet">
                          
                          
                          
                          
                          <!-- 
                              - google icon link 
                          --> 
                          <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0..1,0" />
                          
                          
                          
                          
                          <!-- 
                              - custom css link 
                          --> 
                          <link rel="stylesheet" href="./assets/css/style3.css">
                          
                          
                          
                          
                          <!-- 
                              - custom js link 
                          --> 
                          <script src="./assets/js/script.js" defer></script>
                          
                          
                          
                          
                          <!-- 
                              - preload images
                          --> 
                          
                          
                          <head>
                              <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
                              <script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script>
                              <script src="https://cdnjs.cloudflare.com/ajax/libs/Counter-Up/1.0.0/jquery.counterup.min.js"></script>
                          
                          </head>
                          
                          
                          
                          <body>
                              <section>
                                  <a href="ajout_annonce.php" class="link">Ajouter une photo</a>
                                  <?php
                                      //inclure la page de connexion
                                      include_once "conne.php";
                                      //afficher la liste des photos qui sont dans la base de donnée
                                      $req = mysqli_query($con , "SELECT * FROM images WHERE nom ='".$_SESSION['admin_name']."' ");
                          
                          
                                      //verifier que la liste n'est pas vide
                                      if(mysqli_num_rows($req) < 1){
                                          ?>
                                          <p class="vide_message">La liste des photos est vide.</p>
                          
                                          
                                                  
                                          <?php
                                      }
                          
                                      //afficher la liste des photos
                                      while($row = mysqli_fetch_assoc($req)){
                                          ?>         
                                              <div class="box">
                                                  <img class="img_principal" src="upload/<?=$row['img']?>">
                                                  <div>Description: <?=$row['txt']?></div>
                                                  <div>Titre de l'annonce: <?=$row['titre']?></div>
                                                  <div>Votre nom: <?=$row['nom']?></div>
                                                  <div>Localisation: <?=$row['localisation']?></div>
                                                  <div>Prix: <?=$row['prix']?>€</div>
                                                  <a class="delete_btn" href="delete.php?id=<?=$row['id']?>">
                                                  <img src="remove.png">
                                                  </a>
                                              </div>
                                          <?php
                                      }
                                  ?>
                          
                              </section>
                          </body>
                          </html>

                          Et la page de création des annonces:

                          <?php 
                              //inclure la page de connexion
                              include_once "conne.php";
                              //verifier que les données sont envoyés
                              if(isset($_POST['send'])){
                                  //verifiez que l'image et le texte ont été choisies
                                  if(!empty($_FILES['image']) && isset($_POST['text']) && $_POST['text']!= ""){
                                      
                                      //On récupère d'abord le nom de l'image
                                      $img_nom = $_FILES['image']['name'];
                          
                                      //Nous définissons un nom temporaire
                                      $tmp_nom = $_FILES['image']['tmp_name'];
                          
                                      //On récupère l'heure actuelle
                                      $time = time();
                          
                                      //On rennomme l'image en utilisant cette formule : heure + nom de l'image (Pour avoir des images uniques)
                                      $nouveau_nom_img = $time.$img_nom ;
                          
                                      //on déplace l'image dans un dossier appellé "image_bdd"
                                      $deplacer_img = move_uploaded_file($tmp_nom,"upload/".$nouveau_nom_img);
                          
                                      if($deplacer_img){
                                          //si l'image a été mis dans le dossier 
                                          //insérons le texte et le nom de l'image dans la base de données
                                          $titre = $_POST['titre'] ;
                                          $nom = $_POST['nom'];
                                          $localisation = $_POST['localisation'];
                                          $prix = $_POST['prix'];
                                          $text = $_POST['text'] ;
                                          $req = mysqli_query($con , "INSERT INTO images VALUES (NULL ,'$nouveau_nom_img','$text','$titre','$nom','$localisation','$prix')");
                                          //verifier que la requête fonctionne
                                          if($req){
                                              //si oui , faire une redirection vers la page liste.php
                                              header("location:logement_pro.php") ;
                                          }else {
                                              //si non
                                              $message = "Echec de l'ajout de l'image !";
                                          }
                                      }else {
                                          //si non
                                          $message = "Veuillez choisir une image avec une taille inférieur à 1Mo !";
                                      }
                          
                                  }else {
                                      //si les champs sont vides on affiche un message
                                      $message = "Veuillez remplir tous les champs !";
                                  }
                              }
                          
                          
                          ?>
                          <!DOCTYPE html>
                          <html lang="en">
                          <head>
                             <meta charset="UTF-8">
                             <meta http-equiv="X-UA-Compatible" content="IE=edge">
                             <meta name="viewport" content="width=device-width, initial-scale=1.0">
                             <meta name="description" content="developpé par MD Web">
                             <title>Ajouter une annonce</title>
                          
                          
                          
                              <!-- 
                              - favicon
                              -->
                          
                          
                               <link rel="favicon">
                          
                          
                          
                          
                          <!-- 
                              - google font link 
                          --> 
                          <link rel="preconnect" href="https://fonts.googleapis.com">
                          <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
                          <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&display=swap" rel="stylesheet">
                          <link href="https://fonts.googleapis.com/css2?family=Handlee&display=swap" rel="stylesheet">
                          
                          
                          
                          
                          <!-- 
                              - google icon link 
                          --> 
                          <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0..1,0" />
                          
                          
                          
                          
                          <!-- 
                              - custom css link 
                          --> 
                          <link rel="stylesheet" href="./assets/css/style2.css">
                          
                          
                          
                          
                          <!-- 
                              - custom js link 
                          --> 
                          <script src="./assets/js/script.js" defer></script>
                          
                          
                          
                          
                          <!-- 
                              - preload images
                          --> 
                          
                          
                          <head>
                              <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
                              <script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script>
                              <script src="https://cdnjs.cloudflare.com/ajax/libs/Counter-Up/1.0.0/jquery.counterup.min.js"></script>
                          
                          </head>
                          
                          
                          
                          <body>
                          <div class="form-container">
                              
                              <p class="error">
                                  <?php 
                                     //afficher une erreur si la variable message existe
                                     if(isset($message)) echo $message ;
                                  ?>
                              </p>
                              <form action="" method="POST" enctype="multipart/form-data"> 
                              <a href="espace_professionnel.php" class="modal_close">&times;</a>
                              <h3>Ajouter une annonce</h3>
                                  <input type="file" name="image" required placeholder>
                                  <input type="text" name="titre" cols="30" rows="10" required placeholder="Entrer le titre de votre annonce">
                                  <input type="text" name="localisation" cols="30" rows="10" required placeholder="Entrer votre localisation">
                                  <input type="text" name="prix" cols="30" rows="10" required placeholder="Entrer votre prix">
                                  <textarea name="text" cols="30" rows="10" required placeholder="Entrer votre description"></textarea>
                                  <input type="submit" name="send" value="Ajouter" class="form-btn">
                                  <a href="logement_pro.php" class="link">Liste des photos</a>
                              </form>
                          </div>
                          </body>
                          </html>




                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 mars 2024 à 8:14:58

                            Bonjour, 

                            Si j'ai bien compris, le nom de l'utilisateur est celui de l'admin qui est déjà en session, non ?

                            Du coup, pourquoi ne pas le rajouter (en disabled) dans le formulaire :

                            <input type="text" name="nom" value="<?=$_SESSION['admin_name']?>">
                            

                            Surtout qu'il est demandé dans le php ; (et à vrai dire vu qu'il est en session, ce n'est pas obligatoire, il suffit de ne pas le demander du tout et d'attribuer la session aux valeurs envoyées)

                            NB : Et au passage, petit bonus sur les requêtes qui manipulent des données utilisateur :

                            https://www.php.net/manual/fr/mysqli.prepare.php

                            -
                            Edité par GBNet 12 mars 2024 à 8:16:26

                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 mars 2024 à 20:25:49

                              Bonsoir,

                              ça ne m'affiche rien même en ajoutant la ligne de code .

                              C'est à dire en disabled ?

                              • Partager sur Facebook
                              • Partager sur Twitter
                                13 mars 2024 à 22:11:09

                                Hello, 

                                La session 'admin_name', c'est pas celle de l'utilisateur ? Si oui et qu'il est connecté ça devrait afficher sa valeur. Sinon, il a des infos en session déjà l'utilisateur ?

                                ("disabled" c'est pour interdire l'édition du champ mais c'est accessoire) 

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  13 mars 2024 à 23:36:06

                                  Normalement oui puisque pour afficher sur la page d’accueil de l’espace membre le nom de l’utilisateur j’ai utilisé admin_name et ça fonctionne c’est ça que je comprend pas.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    14 mars 2024 à 7:32:22

                                    Et en ajoutant 
                                    session_start();
                                    sur la page de création des annonces ?
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      14 mars 2024 à 13:29:40

                                      Ah bah c’était ça 😅

                                      J’ai l’impression d’être vraiment une idiote du coup mais bon le principal c’est que ça marche 

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 mars 2024 à 13:34:34

                                        MaëvaDrehlich a écrit:

                                        Ah bah c’était ça 😅

                                        Bonjour,

                                        Sujet résolu

                                        Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e ;)

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        afficher masquer une div avec des conditions

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        • Editeur
                                        • Markdown