Chaandgus

21 Octobre 2021 à 21:07 (Édité)

229

Résolu

Systèmes d'amis

Hello,


Désolé je bute sur cette partie :

https://www.sitedudev.com/cours/creer-son-site/e2c40ddf633141be8202221190754820


Mes boutons de profil utilisateur (demande d'amis / blocage) ne sont pas interactifs bien que le statut soit correct dans la base de données.

De pluDu coup je continue d'incrémenter ma table Cela fait 2 heures que je cherche. Quelqu'un aurait-il une idée svp ?


<?php
session_start();

    include('bd/connexionDB.php');

    // S'il n'y a pas de session alors on ne va pas sur cette page
    if (!isset($_SESSION['id'])){
        header('Location: index.php');
        exit;
    }


    $id = (int) htmlentities(trim($_GET['id']));

 
    if(!is_int($id) || $id<=0 || (isset($SESSION['id']) && $id == $_SESSION['id'])){
    header('Location: particuliers.php');
    exit;
}


$afficher_profil=$DB->query("SELECT *
    FROM profil
    WHERE id = ?",
    array($id));


$afficher_profil = $afficher_profil->fetch();

/
if(!isset($afficher_profil['id'])){
 header('Location: particuliers.php');
    exit;    
}

$relation = $DB->query("SELECT *
    FROM relation
    WHERE (id_demandeur, id_receveur) = (:id1, :id2) OR (id_demandeur, id_receveur) = (:id2, :id1)",
    array('id1'=> $SESSION['id'], 'id2' => $id));

    $relation = $relation->fetch();


    if(!empty($_POST)){
    $valid = true;
    extract($POST);

    if(isset($_POST['demander'])){
         if(!isset($relation['id'])){  
         $DB->insert("INSERT INTO relation (id_demandeur, id_receveur, statut) VALUES (?, ?, ?)",
        array($_SESSION['id'], $id, 1));
    }

            header('Location: /voir_profil?id=' . $id);
            exit;


    }elseif(isset($_POST['bloquer'])){
         if(!isset($relation['id'])){  
         $DB->insert("INSERT INTO relation (id_demandeur, id_receveur, statut, id_bloqueur) VALUES (?, ?, ?, ?)",
        array($_SESSION['id'], $id, 3, $_SESSION['id']));

    }else{
             $DB->insert("UPDATE relation SET statut = ?, id_bloqueur = ? WHERE id = ?",
        array(3, $id, $relation['id']));
     }
             header('Location: /voir_profil?id=' . $id);
            exit;

    }elseif(isset($_POST['debloquer'])){
     if(!isset($relation['id'])){  
         $DB->insert("DELETE FROM relation WHERE id = ?",
        array($relation['id']));
      }
                 header('Location: /voir_profil?id=' . $id);

            exit;
    }
}

?>

<!DOCTYPE html>
<html>
    <head>
        <base href="/"/>
        <meta charset="utf-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
        <title>Accueil</title>
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <link rel="stylesheet" href="css/style.css">
    </head>

    <body>
      <?php
        require_once('menu.php');
      ?>

        <div class="container">
     <div class="row">   
            <div class="col-0 col-sm-0 col-md-2 col-lg-1"></div>
          <div class="col-12 col-sm-12 col-md-8 col-lg-10">

        <div class="cdr-ins">
                <h2>Voici quelques informations sur <?= $afficher_profil['prenom'] . " " .  $afficher_profil['nom']; ?></h2>

        <div> </div>
            <ul>
                <li>Votre id est : <?= $afficher_profil['id'] ?></li>
                <li>Votre mail est : <?= $afficher_profil['mail'] ?></li>
                <li>Votre compte a été crée le : <?= $afficher_profil['date_creation_compte'] ?></li>
                <li>Votre relation est : <?= $relation['statut'] ?></li>
            </ul>

<?php
if(isset($_SESSION['id'])){
?>

                 <form method="post">
                      <?php
                        if(!isset($relation['id']) && $relation['statut'] <> 3){
                        ?>
                        <input type="submit" name="demander" value="Ajouter en ami"/>
                      <?php
                        }elseif($relation['statut'] == 1){
                        ?>
                     <!-- si le statut est 1, la personne en attente pour le demandeur
                        <span value="En attente"/></span>
                                   <tr><td></td>-->
                              <td><span value="En attente"/></span></td></tr>  -->
                        <?php
                          }elseif($relation['statut'] == 2){
                        ?>
                        <span class="badge bg-info text-dark">En réseau.</span>                            
                        <?php
                          }
                    ?>
                    <?php
                        if($relation['statut'] <> 3){
                        ?>
                        <input type="submit" name="bloquer" value="Bloquer cette personne"/>
                       <?php
                        }else{
                        ?>
                        <input type="submit" name="débloquer" value="Déloquer cette personne"/>                        
                         <?php
                          }
                    ?>
                     </form>

    <?php
                          }
                    ?>
</div>
</div>
</div>
</div>

    <!-- premier lien de https://developers.google.com/speed/libraries -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <!-- <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>-->
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <body>
</html>


Merci pour votre aide.

Cette pub permet au site de vivre ...

Meilleure réponse

Hello @Space001 😀


Bon, j'ai enfin retrouvé du temps 😅

Il manquait un underscore avant la SESSION :


$relation = $DB->query("SELECT *
   FROM relation
   WHERE (id_demandeur, id_receveur) = (:id1, :id2) OR (id_demandeur, id_receveur) = (:id2, :id1)",
   array('id1'=> $_SESSION['id'], 'id2' => $id));


Du coup cela fonctionne 🤩 et je renouvelle mes compliments à M. le Professeur (d'où mon petit backshis 😎) !


@ +

Cette pub permet au site de vivre ...

5 commentaires

Hello @Space001 😀


Bon, j'ai enfin retrouvé du temps 😅

Il manquait un underscore avant la SESSION :


$relation = $DB->query("SELECT *
   FROM relation
   WHERE (id_demandeur, id_receveur) = (:id1, :id2) OR (id_demandeur, id_receveur) = (:id2, :id1)",
   array('id1'=> $_SESSION['id'], 'id2' => $id));


Du coup cela fonctionne 🤩 et je renouvelle mes compliments à M. le Professeur (d'où mon petit backshis 😎) !


@ +

Salut @Chaandgus 😎


Ah oui c'est clair 👌


A très bientôt 😉

Bonjour Space001,

Désolé, en ce moment j'avance à tout petit pas...(comme mes 3 enfants en bas âge 😃)


J'espère bien revenir vers toi dès que possible car admire tout le travail qui a été fait et mis à dispo sur ce site.

A très bientôt donc et encore toutes mes excuses, 👍

Bonjour @Chaandgus,


Nous n'avons reçu aucune réponse de ta part, je ferme ce topic ! Lorsque tu auras besoin d'aide, pense à répondre aux questions posées afin que les internautes ayant le même problème que toi puissent connaître la ou les solution(s) 😉


Néanmoins, bonne continuation à toi 😎

Salut @Chaandgus !


Que veux-tu dire dans cette partie de ton problème :


Mes boutons de profil utilisateur (demande d'amis / blocage) ne sont pas interactifs bien que le statut soit correct dans la base de données.


Tu veux dire que l'apparence des boutons ne change pas (par exemple : le bouton ajouter en ami ne s'affiche pas même si tu n'es pas amis avec l'utilisateur) ? 🤔

Cette pub permet au site de vivre ...