Tchat : message / réponse

Ce topic a été résolu
FreeZiX

FreeZiX Le 20 juin 2017 à 19:43 (Édité le 25 janvier 2019 à 17:53)

Bonjour ( bonsoir ), 😀
j'ai depuis un petit moment un problème avec le tchat et plus précisement avec le systeme de réponse.
Voile ce que j'ai fait : 
<?php 
session_start();
include('function/bdd.php');
if(isset($_POST['submessage'])){
    if(!empty($_POST['message'])){
       $pseudo = htmlspecialchars($_SESSION['pseudo']);
        $message = htmlspecialchars($_POST['message']);
        $insertmsg = $bdd->prepare('INSERT INTO chat (pseudo, message) VALUES(?, ?)');
        $insertmsg->execute(array($pseudo, $message));
        header('Location: ?q=Chat');
    } else {
        echo "Message !!!";
    }
}
?>
<div class="container">
   <?php if(isset($_SESSION['id'])) { ?>
      <section class="chat">
         <div class="message-input" id="message">
            <?php
                 $allmsg = $bdd->query('SELECT * FROM chat ORDER BY id ASC');
                 while($msg = $allmsg->fetch()){ ?>
                    <?php if($msg['pseudo'] != $pseudo) {?>
                    <span>
                     <a href=""><img height="22px" src="img/corbeille.png"></a><div class="pseudo"><?= htmlspecialchars($msg['pseudo']); ?></div>
                        <div class="message"> <?= htmlspecialchars(stripcslashes($msg['message'])); ?></div>
                        
                     </span>
                     <?php } else { 
                        echo "cc";
                      }
                     ?>
             <?php } ?>
          </div>
          <form action="" method="POST">
              <div class="input-write">
               <textarea type="text" rows="6" cols="150" name="message" placeholder="Tchat avec les membres ..."></textarea>
            </div>
              <input type="submit" name="submessage" class="btn">
          </form>
      </section>
   <?php } else { ?>
      <img style="position: relative;left: 50%; transform: translateX(-50%);" src="img/nyan-cat.gif">
      <div class="required-login"><p>Tu dois te connecter pour parler avec les membres du site. <br><a href="?q=Se Connecter">Se connecter</a> </p></div>
      <img style="position: relative;left: 50%; transform: translateX(-50%);" src="img/nyan-cat.gif">
   <?php } ?>
</div>
Et ce que j'aimerais faire c'est exemple :
Clique pour voir l'exemple

Et ce que j'aimerais faire c'est du genre si je suis sur mon compte je vois le message en bleu et si c'est pas mon compte ça affiche le message en gris.

Merci d'avoir lu 😉
Balatharas

Balatharas Le 21 juin 2017 à 18:49

Tu n'arrives pas a faire fonctionner le système de réponse ?
Sinon pour les messages bleus si c'est toi voilà comment faire:
Il faut remplacer la colonne pseudo par id_sender soit l'id de l'expéditeur du message, ce sera plus pratique pour récup les données de l'expéditeur et s'il change son pseudo plus tard, la table chat n'aura pas besoin d'être modifiée
Donc une fois que tu as changé la colonne (oublies pas de mettre le type sur INT au lieu de TEXT (dans phpmyadmin)) tu changes ta requête:
if(!empty($_POST['message'])){
   $id = htmlspecialchars($_SESSION['id']);
   $message = htmlspecialchars($_POST['message']);
   $insertmsg = $bdd->prepare('INSERT INTO chat (id_sender, message) VALUES(:sender, :msg)');
   $insertmsg->bindValue(':sender', $id, PDO::PARAM_INT);
   $insertmsg->bindValue(':msg', $msg, PDO::PARAM_STR);
   if($insertmsg->execute()) {
      header('Location: ?q=Chat');
   }
} else {
   echo "Message !!!";
}
J'ai modifié des trucs, les deux lignes avec bindValue c'est simplement pour spécifier le type de la variable insérée
Ensuite
<?php
// DANS TA BOUCLE WHILE
if($msg['id_sender'] == $_SESSION['id'] { ?>
<div class="MESSAGE" style="background-color: blue;">
   <?= $msg['message'] ?>
</div>
<?php } else { ?>
<div class="MESSAGE" style="background-color: white;">
   <?= $msg['message'] ?>
</div>
<?php } ?>
Donne moi ton retour 😉
FreeZiX

FreeZiX Le 27 juin 2017 à 13:18

Tous marche trés bien merci @[url=https://www.primfx.com/profil/beignet/]Beignet
[/url]:D
Balatharas

Balatharas Le 28 juin 2017 à 12:59

De rien 😉
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte