8768 sujets

Développement web côté serveur, CMS

slt a tous , moi c'est jesbeer nguimatio, je suis etudiant au cameroun. bon je suis entrain de creer un systeme de messagerie pour mon site et ca fais ds jour que je suis bloqué sur un point . je me redirige sur ce forum en esperan trouver solution.
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
                    	  }
                               
Salut,
C'est normal, quand A envoi un message, B n'est pas alerté qu'il a un message à aller chercher sur le serveur, il va uniquement le savoir quand il va dialoguer avec le serveur.