Sript pour tchat non fonctionnel

Résolu/Fermé
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 - Modifié par rolly41 le 12/11/2016 à 03:13
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 13 nov. 2016 à 00:09
Bonjour à vous, j'ai actuellement un script qui reprend le message posté dans un formulaire.

Le travail de ce script est d'afficher le message une fois posté. Mais celui-ci ne s'affiche pas chez les autres utilisateur et n'inscrit pas les données dans la base de données.

Je ne trouve malheureusement pas l'erreur dans le script.

Pourriez-vous m'aider à trouver le problème?

dossier source:
shoutbox.php
include/get_shoutbox.php
include/post_shoutbox.php
js/main_shoutbox.php


Voici main_shoutbox.js
$('#envoyer').click(function(e)
{
	e.preventDefault(); // on empêche le bouton d'envoyer le formulaire
	var pseudo = encodeURIComponent( $('#pseudo_expediteur').val() );//pseudo de l'expediteur
	var msg = encodeURIComponent( $('#message_expediteur').val() );//message envoyé
	var id_salon = encodeURIComponent( $('#id_salon').val() );//id du salon
	var id = encodeURIComponent( $('#id_expediteur').val() );//id de l'expediteur
	var timer = new Date(); //création variable timer
	var annee   = timer.getFullYear();
	var mois    = timer.getMonth()+1;
	var jour    = timer.getDate();
	var hrs   = timer.getHours();
	var mins  = timer.getMinutes();
	var secs = timer.getSeconds();
	var heure = ((hrs<10)?"0":"")+hrs;
	var minute = ((mins<10)?"0":"")+mins;
	var seconde = ((secs<10)?"0":"")+secs;
	var date = jour+"/"+mois+"/"+annee;
	var time = heure+":"+minute+":"+seconde;
	if(msg != "")
	{ // on vérifie que les variables ne sont pas vides
		$.ajax(
		{
			url : "../include/post_shoutbox.php", // on donne l'URL du fichier de traitement
			type : "POST", // la requête est de type POST
			data : "date=" + date + "&time=" + time + "&message=" + msg + "&id_salon=" + id_salon + "&id=" + id// et on envoie nos données
		});
		$('#messages').append("<font>" + date + " à " + time + " " + pseudo + " dit : " + msg + "</font>"); // on ajoute le message dans la zone prévue
	}
	else
	{
		alert('Votre message est vide');
	}
});
function charger()
{
	setTimeout( function()
	{
		var premierID = $('#messages p:first').attr('id'); // on récupère l'id le plus récent
		$.ajax(
		{
			url : "../include/get_shoutbox.php?id=" + premierID, // on passe l'id le plus récent au fichier de chargement
			type : GET,
			success : function(html)
			{
				$('#messages').prepend(html);
			}
		});
		charger();
	}, 500);
}
charger();


Voici get_shoutbox.php
<?php
	if(!empty($_GET['id']))
	{
		// on vérifie que l'id est bien présent et pas vide
		$id = (int) $_GET['id']; // on s'assure que c'est un nombre entier
		// on récupère les messages ayant un id plus grand que celui donné
		$requete = $bdd->prepare('SELECT * FROM messages WHERE id > :id ORDER BY id DESC');
		$requete->execute(array("id" => $id));
		$messages = 'Ce message n\'existe pas';
		// on inscrit tous les nouveaux messages dans une variable
		while($donnees = $requete->fetch())
		{
			$messages .= "<font id=\"" . $donnees['id'] . "\">".$msg['date']." à ".$msg['time']." ".$msg['author']." dit : ". $msg['message']."<hr/></font>";
		}
	echo $messages; // enfin, on retourne les messages à notre script JS
	}
?>


Voici post_shoutbox.php
<?php
	if (!empty($_POST))
	{
		if(!empty(strip_tags($_POST['message'])) && strlen(strip_tags($_POST['message'])) >= 1)
		{
			$message= strip_tags($_POST['message']);
			if(isset($_SESSION))
			{
				$id_salon=$_POST['id_salon'];
				$id_session=$_SESSION['id'];
				$erreur['msg']='Vous pouvez maintenant faire de nouvelle vérifications';
				$requete = $bdd->prepare("SELECT * FROM shoutbox_msg WHERE id_expediteur = ? AND id_salon = ?");
				$requete->bindParam(1, $id_session);
				$requete->bindParam(2, $id_salon);
				$requete->execute();
				if($requete->fetch())
				{
					$erreur['msg']='La requête indique que vous avez déjà posté des messages dans ce salon';
					$flood=false;
					//$flood=true;
				}
				else
				{
					$erreur['msg']='La requête indique que vous n\'avez pas posté de message dans ce salon';
					$flood=false;
				}
				if($flood==false)
				{
					$erreur['msg']='Votre message peut-être enregistré';
					$requete = $bdd->prepare("INSERT INTO shoutbox_msg (id_expediteur, time_msg, date_msg, msg, id_salon) VALUES (?,?,?,?,?)");
					$requete->bindParam(1, $id_session);
					$requete->bindParam(2, $time);
					$requete->bindParam(3, $date);
					$requete->bindParam(4, $message);
					$requete->bindParam(5, $id_salon);
					$requete->execute();
					if($requete)
					{
						$erreur['msg']='Votre message a été envoyé';
						$erreur=array();
						$message=array();
					}
					else
					{
						$erreur['msg']='Votre message n\'a pas été envoyé';
					}
				}
				else
				{
					$erreur['msg']='Ce message a déjà été envoyé ses 10 derniére secondes';
				}
			}
			else
			{
				$erreur['msg']='Vous devez être connecté pour pouvoir discuter';
			}
		}
		else
		{
			$erreur['msg']='Votre message doit contenir au minimum 1 caractére';
			$message= strip_tags($_POST['message']);
		}
	}
?>


Voici shoutbox.php
<?php
		if(empty($subtitle))
		{
			$subtitle='Shoutbox';
			include 'include/header.php';
			include 'include/body.php';
			if (!isset($nbrs_admin))
			{
				$nbrs_admin='0';
			}
			if (!isset($nbrs_modo))
			{
				$nbrs_modo='0';
			}
			if (!isset($nbrs_membre))
			{
				$nbrs_membre='0';
			}
			if($maintenance == 'off')
			{
				if(empty($id_salon))
				{
					$id_salon='2';
				}
				$erreur=array();
				$_SESSION['id']='1';
				$_SESSION['pseudo']='Administrateur';
				include('include/post_shoutbox.php');
				?>
				<div height="100%" width="100%" align="center" valign="middle">
					<form method="POST" action="shoutbox.php">
						<table border="1" align="bottom" class="shoutbox">
							<tr valign="middle" width="100%" class="shout1"><td colspan="2" align="center">Bienvenue dans la Shoutbox <font color="#444444"><?php echo $_SESSION['pseudo'];?></font></td></tr>
							<tr valign="middle" align="left" class="shout2"><td colspan="2"><u>Liste des salons</u> | <u>#Aide</u> | <u>#Général</u></td></tr>
							<tr valign="middle" align="center"  class="shout1"><td width="80%" align="center">Suivi de discution</td><td>Membre en ligne</td></tr>
							<tr align="left" height="423px" class="shout2">
								<td valign="bottom" height="423px">
									<div style="height:100%;width:100%;display: block;overflow:hidden;overflow-x: hidden;overflow-y: auto;overflow : -moz-scrollbars-vertical;" id="messages">
									<input type="hidden" name="id_salon" value="<?php echo $id_salon?>" />
									<?php
										include ('include/affichage_msg_salon.php');
									?>
									</div>
								</td>
								<td valign="top"  height="423px">
									<div style="height:100%;width:100%;display: block;overflow:hidden;overflow-x: hidden;overflow-y: auto;overflow : -moz-scrollbars-vertical;"><?php
									echo '<font color="#660000">Administrateurs :<br /><br />';
									if ($nbrs_admin!='0')
									{
										echo 'Des administrateurs sont en ligne <br />';
									}
									else
									{
										echo 'Aucun administrateur en ligne';
									}
									echo '</font><hr/>';
									echo '<font color="#006600">Modérateurs :<br /><br />';
									if ($nbrs_modo!='0')
									{
										echo 'Des modérateurs sont en ligne<br />';
									}
									else
									{
										echo 'Aucun modérateur en ligne';
									}
									echo '</font><hr/>';
									echo '<font color="000066">Membres :<br /><br />';
									if ($nbrs_membre!='0')
									{
										echo 'Des membres sont en ligne<br />';
									}
									else
									{
										echo 'Aucun membre en ligne';
									}
									echo '</font>';
									?>
								</td>
							</tr>
							<tr valign="middle" align="left"  class="shout1"><td colspan="2">Actions : | <b>G</b> | <i>I</i> | <s>B</s> | <u>S</u> |   |   |   |   |   |   |   |   |   </td></tr>
							<tr valign="middle" align="left"><td style="background-color:#dddddd;">
								<input type="hidden" name="pseudo" id="pseudo_expediteur" value="<?php echo $_SESSION['pseudo'];?>" />
								<input type="hidden" name="id" id="id_expediteur" value="<?php echo $_SESSION['id'];?>" />
								<input type="texte" name="message" id="message_expediteur" size="100%" placeholder="Votre message ici" style="width:90%;" />  
								<font size="1">
									<input type="submit" name="envoyer" id="envoyer" value="Envoyer" />  
								</font>
							</td><td align="center" class="shout2">Shoutbox version : Alpha</td></tr>
						</table>
					</form>
					<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
					<script src="js/main_shoutbox.js">
					</script>
				</div>
				<?php
			}
			else
			{
				echo $img_maintenance;
			}
			include 'include/no-body.php';
		}
		else
		{
			echo 'La shoutbox est indisponnible pour cette page !';
			echo 'Veuillez-vous rendre sur <a href="shoutbox.php" rel="nofollow noopener noreferrer" target="_blank">cette page</a>';
		}
	?>


Pourriez-vous m'aider à trouver la/les source(s) du (des) problème(s) ?

2 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
12 nov. 2016 à 15:22
Bonjour,

il y aurait beaucoup de choses à dire sur tes codes... mais bon.
Déjà.. je ne vois pas dans tes script ajax (php) la connexion à la BDD.
Ensuite, vu que tu sembles utiliser la PDO... pense à activer la gestion des erreurs PDO et à mettre tes requêtes dans des blocs try/catch
Comme ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

N'hésites pas non plus à utiliser les success / error de l'ajax (jquery) pour afficher (via des console.log) ce qui est retourné par ton php.

Et enfin.. regarde dans la console de ton navigateur ce qui apparait lorsque tu postes un message... histoire de voir si il n'y aurait pas des erreurs... ou au moins voir le résultat des console.log

voici un exemple ajax complet ici qui pourra te donner quelques pistes sur l'écriture d'un code "propre"
https://forums.commentcamarche.net/forum/affich-33258760-remplir-un-formulaire-dynamiquement-en-fonction-d-une-combobox#2
0
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 1
Modifié par rolly41 le 12/11/2016 à 17:42
je ne connais pas l'ajax n'y le javascript,

j'ai maintenant ceci :
$('#envoyer').click(function(e)
{
	e.preventDefault(); // on empêche le bouton d'envoyer le formulaire
	var pseudo = encodeURIComponent( $('#pseudo_expediteur').val() );//pseudo de l'expediteur
	var msg = encodeURIComponent( $('#message_expediteur').val() );//message envoyé
	var id_salon = encodeURIComponent( $('#id_salon').val() );//id du salon
	var id = encodeURIComponent( $('#id_expediteur').val() );//id de l'expediteur
	var timer = new Date(); //création variable timer
	var annee   = timer.getFullYear();
	var mois    = timer.getMonth()+1;
	var jour    = timer.getDate();
	var hrs   = timer.getHours();
	var mins  = timer.getMinutes();
	var secs = timer.getSeconds();
	var heure = ((hrs<10)?"0":"")+hrs;
	var minute = ((mins<10)?"0":"")+mins;
	var seconde = ((secs<10)?"0":"")+secs;
	var date = jour+"/"+mois+"/"+annee;
	var time = heure+":"+minute+":"+seconde;
	if(msg != "")
	{ // on vérifie que les variables ne sont pas vides
		$.ajax(
		{
			url : "../include/post_shoutbox.php", // on donne l'URL du fichier de traitement
			type : "POST", // la requête est de type POST
			data : "message=" + msg + "&id_salon=" + id_salon + "&id=" + id,// et on envoie nos données
			success : function(data, statut)
			{
				alert ('success');
			},
			error : function(data, statut, erreur)
			{
				alert ('error');
			},
			complete : function(data, statut)
			{
				alert ('complete');
			}
		});
		$('#messages').append("<font>" + date + " à " + time + " " + pseudo + " dit : " + msg + "</font>"); // on ajoute le message dans la zone prévue
	}
	else
	{
		alert('Votre message est vide');
	}
});


j'ai ajouter la connexion à la base de données dans les page de traitement (get_shoubox.php et post_shoutbox.php).

Quand j'envois un message, j'ai a chaque fois 2 alert (error et complete)

Qu'elle est la différence entre succes et complete ?
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023
12 nov. 2016 à 19:34
Le complete se lance quelque soit le résultat (success ou error)


Par contre... au lieu de faire les alert... fais donc des console.log(data)
et dis nous ce que la console de ton navigateur te retourne
0
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 1
Modifié par rolly41 le 12/11/2016 à 22:38
la console me dit :
Page main_shoutbox.js ligne 47:4

ReferenceError: GET is not defined
type : GET,

L’utilisation de « getPreventDefault() » est obsolète. Utiliser « defaultPrevented » à la place. (il semble que la librairie ajax 1.8 soit la cause de cette erreur)

je suppose que ça veut dire que GET n'est pas défini dans mon javascript

La page main_shoutbox.js
$('#envoyer').click(function(e)
{
 e.preventDefault(); // on empêche le bouton d'envoyer le formulaire
 var pseudo = encodeURIComponent( $('#pseudo_expediteur').val() );//pseudo de l'expediteur
 var msg = encodeURIComponent( $('#message_expediteur').val() );//message envoyé
 var id_salon = encodeURIComponent( $('#id_salon').val() );//id du salon
 var id = encodeURIComponent( $('#id_expediteur').val() );//id de l'expediteur
 var timer = new Date(); //création variable timer
 var annee   = timer.getFullYear();
 var mois    = timer.getMonth()+1;
 var jour    = timer.getDate();
 var hrs   = timer.getHours();
 var mins  = timer.getMinutes();
 var secs = timer.getSeconds();
 var heure = ((hrs<10)?"0":"")+hrs;
 var minute = ((mins<10)?"0":"")+mins;
 var seconde = ((secs<10)?"0":"")+secs;
 var date = jour+"/"+mois+"/"+annee;
 var time = heure+":"+minute+":"+seconde;
 if(msg != "")
 { // on vérifie que les variables ne sont pas vides
  $.ajax(
  {
   url : "./include/post_shoutbox.php", // on donne l'URL du fichier de traitement
   type : "POST", // la requête est de type POST
   data : "message=" + msg + "&id_salon=" + id_salon + "&id=" + id,// et on envoie nos données
   success : function(data, statut)
   {
    console.log(data);
   }
  });
  $('#messages').append("<font>" + date + " à " + time + " " + pseudo + " dit : " + msg + "</font><hr />"); // on ajoute le message dans la zone prévue
 }
 else
 {
  alert('Votre message est vide');
 }
});
function charger()
{
 setTimeout( function()
 {
  var premierID = $('#messages p:first').attr('id'); // on récupère l'id le plus récent
  $.ajax(
  {
   url : "./include/get_shoutbox.php?id=" + premierID, // on passe l'id le plus récent au fichier de chargement
   type : GET,
   success : function(html)
   {
    $('#messages').append("<font>" + date + " à " + time + " " + pseudo + " dit : " + msg + "</font><hr />");
   }
  });
  charger();
 }, 500);
}
charger();


la ligne 47 est :
type : GET,
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
12 nov. 2016 à 23:01
Il faut mettre 'GET' et non GET tout seul.
Mais en même temps... 'GET' c'est la valeur par défaut... tu n'as même pas besoin de préciser le TYPE.
0
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 1
Modifié par rolly41 le 12/11/2016 à 23:24
Merci ^^

Mais maintenant la consol me dit que date n'est pas défini dans la partie GET
				$('#messages').append("<font>" + date + " Ã  " + time + " " + pseudo + " dit : " + msg + "</font><hr />");


De plus les messages envoyé ne sont pas envoyé a la base de données :(
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023
12 nov. 2016 à 23:20
Tu as activé les erreurs PDO comme je te l'ai indiqué ?
Tu as quelque chose qui s'affiche dans ta console ?
Tu peux montrer ton code modifié suite à mes remarques précédentes ?
0
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 1
Modifié par rolly41 le 12/11/2016 à 23:54
Les erreur PDO sont activé à la requete de connexion de connect-bdd.php
Dans la console, ça me dis que la valeur date n'existe pas (et ça me fait la boucle pour afficher les nouveau messages)
erreur console :
[En savoir plus]main_shoutbox.js:46:5
ReferenceError: date is not defined
Voici les pages actuelle avec leur dossiers parents :

dossier racine
-shoutbox.php
<?php
  if(empty($subtitle))
  {
   $subtitle='Shoutbox';
   include 'include/header.php';
   include 'include/body.php';
   if (!isset($nbrs_admin))
   {
    $nbrs_admin='0';
   }
   if (!isset($nbrs_modo))
   {
    $nbrs_modo='0';
   }
   if (!isset($nbrs_membre))
   {
    $nbrs_membre='0';
   }
   if($maintenance == 'off')
   {
    if(empty($id_salon))
    {
     $id_salon='2';
    }
    $erreur=array();
    $_SESSION['id']='1';
    $_SESSION['pseudo']='Administrateur';
    ?>
    <div height="100%" width="100%" align="center" valign="middle">
     <form method="POST" action="shoutbox.php">
      <table border="1" align="bottom" class="shoutbox">
       <tr valign="middle" width="100%" class="shout1"><td colspan="2" align="center">Bienvenue dans la Shoutbox <font color="#444444"><?php echo $_SESSION['pseudo'];?></font></td></tr>
       <tr valign="middle" align="left" class="shout2"><td colspan="2"><u>Liste des salons</u> | <u>#Aide</u> | <u>#Général</u></td></tr>
       <tr valign="middle" align="center"  class="shout1"><td width="80%" align="center">Suivi de discution</td><td>Membre en ligne</td></tr>
       <tr align="left" height="423px" class="shout2">
        <td valign="bottom" height="423px">
         <div style="height:100%;width:100%;display: block;overflow:hidden;overflow-x: hidden;overflow-y: auto;overflow : -moz-scrollbars-vertical;" id="messages">
         <input type="hidden" name="id_salon" value="<?php echo $id_salon?>" />
         <?php
          include ('include/affichage_msg_salon.php');
         ?>
         </div>
        </td>
        <td valign="top"  height="423px">
         <div style="height:100%;width:100%;display: block;overflow:hidden;overflow-x: hidden;overflow-y: auto;overflow : -moz-scrollbars-vertical;"><?php
         echo '<font color="#660000">Administrateurs :<br /><br />';
         if ($nbrs_admin!='0')
         {
          echo 'Des administrateurs sont en ligne <br />';
         }
         else
         {
          echo 'Aucun administrateur en ligne';
         }
         echo '</font><hr/>';
         echo '<font color="#006600">Modérateurs :<br /><br />';
         if ($nbrs_modo!='0')
         {
          echo 'Des modérateurs sont en ligne<br />';
         }
         else
         {
          echo 'Aucun modérateur en ligne';
         }
         echo '</font><hr/>';
         echo '<font color="000066">Membres :<br /><br />';
         if ($nbrs_membre!='0')
         {
          echo 'Des membres sont en ligne<br />';
         }
         else
         {
          echo 'Aucun membre en ligne';
         }
         echo '</font>';
         ?>
        </td>
       </tr>
       <tr valign="middle" align="left"  class="shout1"><td colspan="2">Actions : | <b>G</b> | <i>I</i> | <s>B</s> | <u>S</u> |   |   |   |   |   |   |   |   |   </td></tr>
       <tr valign="middle" align="left"><td style="background-color:#dddddd;">
        <input type="hidden" name="pseudo" id="pseudo_expediteur" value="<?php echo $_SESSION['pseudo'];?>" />
        <input type="hidden" name="id" id="id_expediteur" value="<?php echo $_SESSION['id'];?>" />
        <input type="texte" name="message" id="message_expediteur" size="100%" placeholder="Votre message ici" style="width:90%;" />  
        <font size="1">
         <input type="submit" name="envoyer" id="envoyer" value="Envoyer" />  
        </font>
       </td><td align="center" class="shout2">Shoutbox version : Alpha</td></tr>
      </table>
     </form>
     <script src="js/main_shoutbox.js">
     </script>
     <script type="text/javascript">
     element = document.getElementById('messages');
     element.scrollTop = element.scrollHeight;
     </script>
    </div>
    <?php
   }
   else
   {
    echo $img_maintenance;
   }
   include 'include/no-body.php';
  }
  else
  {
   echo 'La shoutbox est indisponible pour cette page !';
   echo 'Veuillez-vous rendre sur <a href="shoutbox.php" rel="nofollow noopener noreferrer" target="_blank">cette page</a>';
  }
 ?>


dossier racine
-include
--get_shoutbox.php
--post_shoutbox.php
--connect-bdd.php
--affichage_msg_salon.php

get_shoutbox.php
<?php
 if(!empty($_GET['id']))
 {
  include ('connect-bdd.php');
  // on vérifie que l'id est bien présent et pas vide
  $id = (int) $_GET['id']; // on s'assure que c'est un nombre entier
  // on récupère les messages ayant un id plus grand que celui donné
  $requete = $bdd->prepare('SELECT * FROM shoutbox_msg WHERE id > :id ORDER BY id DESC');
  $requete->execute(array("id" => $id));
  $messages = 'Ce message n\'existe pas';
  // on inscrit tous les nouveaux messages dans une variable
  while($donnees = $requete->fetch())
  {
   $messages .= "<font id=\"" . $donnees['id'] . "\">".$msg['date']." à ".$msg['time']." ".$msg['author']." dit : ". $msg['message']."<hr/></font>";
  }
 echo $messages; // enfin, on retourne les messages à notre script JS
 }
?>


post_shoutbox.php
<?php
 if (!empty($_POST))
 {
  include ('connect-bdd.php');
  if(!empty(mysql_real_escape_string($_POST['message'])) && strlen(mysql_real_escape_string($_POST['message'])) >= 1)
  {
   $messag= strip_tags($_POST['message']);
   $message= mysql_real_escape_string($_POST['message']);
   if(isset($_SESSION))
   {
    $id_salon=$_POST['id_salon'];
    $id_session=$_SESSION['id'];
    $erreur['msg']='Vous pouvez maintenant faire de nouvelle vérifications';
    $requete = $bdd->prepare("SELECT * FROM shoutbox_msg WHERE id_expediteur = ? AND id_salon = ?");
    $requete->bindParam(1, $id_session);
    $requete->bindParam(2, $id_salon);
    $requete->execute();
    if($requete->fetch())
    {
     $erreur['msg']='La requête indique que vous avez déjà posté des messages dans ce salon';
     $flood=false;
     //$flood=true;
    }
    else
    {
     $erreur['msg']='La requête indique que vous n\'avez pas posté de message dans ce salon';
     $flood=false;
    }
    if($flood==false)
    {
     $erreur['msg']='Votre message peut-être enregistré';
     $requete = $bdd->prepare("INSERT INTO shoutbox_msg (id_expediteur, time_msg, date_msg, msg, id_salon) VALUES (?,?,?,?,?)");
     $requete->bindParam(1, $id_session);
     $requete->bindParam(2, $time);
     $requete->bindParam(3, $date);
     $requete->bindParam(4, $message);
     $requete->bindParam(5, $id_salon);
     $requete->execute();
     if($requete)
     {
      $erreur['msg']='Votre message a été envoyé';
      $erreur=array();
      $message=array();
     }
     else
     {
      $erreur['msg']='Votre message n\'a pas été envoyé';
     }
    }
    else
    {
     $erreur['msg']='Ce message a déjà été envoyé ses 10 derniére secondes';
    }
   }
   else
   {
    $erreur['msg']='Vous devez être connecté pour pouvoir discuter';
   }
  }
  else
  {
   $erreur['msg']='Votre message doit contenir au minimum 1 caractére';
   $message= strip_tags($_POST['message']);
  }
 }
?>


connect-bdd.php
<?php
 try 
 {  
  $bdd  = new PDO('mysql:host=localhost;dbname=gamer-online', 'utilisateur', 'monmdptruc', 
  array
  (
   PDO::ATTR_PERSISTENT => true
  )
  );
 }
 catch(Exception $e)
 {
  die('Erreur :'.$e->getMessage());
 }
?>


affichage_msg_salon.php
<?php
 //code php pour afficher le contenu du salon ;)
 $requete = $bdd->prepare("SELECT id FROM shoutbox_salon WHERE id = ?");
 $requete->bindParam(1, $id_salon);
 $requete->execute();
 if($requete->fetch())
 {
  $erreur_salon['msg']='Ce salon existe !<br />';
  $requete = $bdd->prepare("SELECT * FROM shoutbox_msg WHERE id_salon = ?");
  $requete->bindParam(1, $id_salon);
  $requete->execute();
  if($requete->fetch())
  {
   $requete1 = $bdd->prepare('SELECT * FROM shoutbox_msg WHERE id_salon = ? LIMIT 0,500');
   $requete1->bindParam(1, $id_salon);
   $requete1->execute();
   if(!empty($erreur) and $erreur['msg']!=false)
   {
    $erreur1=$erreur['msg'];
    echo '<div style="background-color:#ff0000;color:#ffffff;" align="center">'.$erreur1.'</div>';
   }
   echo '<div id="message">';
   while($donnees = $requete1->fetch())
   {
    $requete2=$bdd->prepare('SELECT * FROM membre WHERE id = ?');
    $requete2->bindParam(1, $donnees['id_expediteur']);
    $requete2->execute();
    $requete2=$requete2->fetch();
    if($donnees['date_msg']==$date)
    {
     $msg['date']='Aujourd\'hui';
    }
    else
    {
     $msg['date']=$donnees['date_msg'];
    }
    $msg['time']=$donnees['time_msg'];
    $msg['author']=$requete2['pseudo'];
    $msg['message']=$donnees['msg'];
    echo "<font id=\"" . $donnees['id'] . "\">".$msg['date']." à ".$msg['time']." ".$msg['author']." dit : ". $msg['message']."<hr/></font>";
    $erreur=array();
    $erreur_salon=array();
   }
   echo '</div>';
  }
  else
  {
   $erreur['msg']='Ce salon n\'a encore aucun message !';
  }
 }
 else
 {
  $erreur_salon['msg']='Ce salon n\'existe pas, veuiller selectionner un salon dans la liste des salons !';
 }
 if(!empty($erreur_salon))
 {
  echo $erreur_salon['msg'];
 }
?>
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649 > rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023
13 nov. 2016 à 00:09
Non seulement tu n'as pas mis les requetes pdo entre try/catch ... mais en plus tu mélanges du PDO et du vieux mysql.....

Commence par remettre au propre tes codes....
0