systeme de messagerie
- Accueil
- Forum
- Programmation
- PHP
- systeme de messagerie
jesbeer Le 1 février 2018 à 21:45 (Édité le 25 janvier 2019 à 17:54)
pour ce systeme de messagerie j'utilise ajax et jquery, ensuite php. ce systeme ce fait de maniere dynamique, je veux pouvoir afficher tout les messsage envoyé a l'instant et charger les ancien message. le probleme se pose au niveau de l'affichage des ancien message et il y'a une lenteur dans l'affichage. par exemple , si A envoie un message a B , il faut que B ait envoyé un message a A pour qu'il que B recoive l'ancien message envoyé par A. sur ce pour resoudre ce probleme , je ne sais quoi faire, voici mon code:::
if (isset($_POST['submit'])) {
# code...
if (isset($_POST['conversation'] )) { // variable du message envoyé par ajax
if (isset($_SESSION['id_dest'])) { // id du destinataire
# code...
$get_conversation=htmlspecialchars($_POST['conversation']);
$id_dest=$_SESSION['id_dest'];
//insertion du message dans ma base
$envoi=$bdd->prepare("INSERT INTO messagerie values('',?,?,?,NOW())");
$envoi->execute(array($_SESSION['id_connecter'],$id_dest,$get_conversation));
if (!$envoi) {
die("Erreur au niveau de l'envoie");
}
else{
?>
<script >
$(function () {
$('#conversation').val('')
})
</script>
<?php
//recuperation de l'id pour afficher un seul message envoye
$get_id=$bdd->prepare("SELECT id from messagerie where id_envoie=? and id_destinataire=? and messages=? ");
$get_id->execute(array($_SESSION['id_connecter'],$id_dest,$get_conversation));
$get_id=$get_id->fetch();
$id=$get_id['id'];
echo $id;
//ici le message a enver
$affiche=$bdd->prepare('SELECT * from messagerie where id_envoie=? and id_destinataire=? order by date_envoie desc');
$affiche->execute(array($_SESSION['id_connecter'],$_SESSION['id_dest']));
// reuquete du message a recevoir
$get_me=$bdd->prepare('SELECT * from messagerie where id=? and id_destinataire=? and id_envoie=? order by date_envoie desc');
$get_me->execute(array($id,$_SESSION['id_connecter'],$id_dest));
//affichage de tout les message dynamiquement
while($affich=$affiche->fetch() and $me=$get_me->fetch()){
if (isset($affich['messages']) ) {
?>
//les messages recu
<div class="affiche">
<?= $affich['messages'] ?>
</div><br><br><br><?php
} ?>
//ici les message envoyé
<?php if (isset($me['messages']) ) {
?><div class="me">
<?=$me['message] ?>
</div><br><br><br>
<?php
?>
<?php
}
ThomasT Le 4 février 2018 à 14:01 (Édité le 1 janvier 1970 à 01:00)
Profil introuvable Le 5 février 2018 à 20:26 (Édité le 1 janvier 1970 à 01:00)
Clouder Le 7 février 2018 à 14:58 (Édité le 1 janvier 1970 à 01:00)
J'ai fait un petit tuto sur Youtube pour créer un tchat (ou messagerie) : lien