Page 1 sur 2

messagerie interne les message ne s'affiche pas

Posté : 25 avr. 2006, 14:56
par polusdemus
bonjour

je suis en train defaire un espace membre pour mon site et j'ai intergré une messagerie les messages s'envoient il n'y a aucune erreur mysql qui apparait mais les messages ne s'affichant pas.

http://polusdemus.free.fr/test/membre/pdf_connexion.php

login: admin
mdp: admin

j'ai envoyé un message pour le test sur cette session pour le test


et je vous passe le code de la page appelée messagerie.php ou sont affichés les messages
<?php

session_start();

if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
{
	echo 'Vous n\'êtes pas autorisez à acceder à cette page.'; //Si non
}
else //Si oui
{

?>
<html>
<?
mysql_connect("****","******","******"); // connection a la base de donné
mysql_select_db("***");  

$requete1 = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' "); // les message du joueur  changer $pseudo_membre
$var1 = mysql_fetch_array ($requete1);
	$titre = $var1['titre'];
	$expediteur  = $var1['expediteur'];
	$message = $var1['message'];
	$mktime = $var1['mktime'];
?>
<body>
<table width="960" border="1">
  <tr>
    <td width="155"><a href="pdf_espace_membre.php">espace membre </a></td>
    <td width="193"><a href="pdf_espace_membre_changeinfo.php">changer vos informations </a></td>
    <td width="134"><a href="messagerie.php">liure les messages </a></td>
    <td width="135"><a href="message.php">ecrire messages </a></td>
    <td width="309"><a href="deconnexion.php">deconnexion</a></td>
  </tr>
</table>
<p align="center" class="copyright">&nbsp;</p>
<p align="center" class="copyright">Message re&ccedil;u </p>
<form action="suprime_message.php" method="POST">
  <span class="copyright">
  <? 
mysql_connect("****","******","******"); // connection a la base de donné
mysql_select_db("***");  
 
 $reponse = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc ");
while ($donnees = mysql_fetch_array($reponse) )  
{ ?> 
  <? mysql_query("UPDATE messagerie SET lu='0' WHERE `destinataire`='$pseudo_membre' "); ?>
  </span>
  <table width="785" border="1" align="center" bgcolor="#393939">
    <tr>
      <th width="70" scope="col"><div align="center" class="copyright">Expediteur</div></th>
      <th width="65" scope="col"><div align="center" class="copyright">Date</div></th>
      <th width="100" scope="col"><div align="center" class="copyright">Titre</div></th>
      <th width="450" scope="col"><div align="center" class="copyright">Message</div></th>
   
      <div align="center" class="copyright"><img src="enveloppe.jpg" alt="r&eacute;pondre" border="0">&nbsp;</div></th>
    </tr>
    <tr>
      <th scope="col"><span class="copyright">
      </span>
      <div align="center" class="copyright"><? echo $donnees['expediteur']; ?></div></th>
      <th scope="col"><span class="copyright">
        </span>
        <div align="center" class="copyright"><? echo date('d/m/Y', $donnees['mktime']);?>        </div>
      <p class="copyright"><? echo date('H\h i\m\i\n s\s', $donnees['mktime']); ?></p></th>
      <th scope="col"><span class="copyright"><? echo $donnees['titre']; ?>
      </span>
      <div align="center"></div></th>
      <th scope="col"><span class="copyright">
      </span>
      <div align="center" class="copyright"><? echo stripslashes($donnees['message']); ?></div></th>
      <th width="66" class="copyright" scope="col">
        <input type="checkbox" name="cocher<? echo $donnees['id']; ?>">
      </th>
    </tr>
  </table>
  <p>
    <?
}
?>
  </p>
  <p align="center"> 
    <select name="suprime_message">
      <option value="message_select">Effacer les messages sélectionnés</option> 
      <option value="tout_message">Effacer tous les messages</option> 
    </select>
    <input type="submit" value="ok" />
    &nbsp;
    </p>
    </p>
  <p>
</form>
 
  <?
}
?>

Posté : 25 avr. 2006, 15:16
par jojolapine
je ne voit nul part l'initialisation de la variable $pseudo_membre ?
est tu sûr qu'elle contient ce que tu souhaite?

Posté : 25 avr. 2006, 15:18
par polusdemus
Mais je ne vois comment cela pourait empechger l'affichage des messages ???

Posté : 25 avr. 2006, 15:23
par jojolapine
bien au contraire, si tu faits une requête dans ta BDD, ta requête va ressemblée à ça:

Code : Tout sélectionner

SELECT * FROM messagerie WHERE `destinataire`=''
et donc ne retournera rien ce qui fait que $var1 ne contiendra rien, et du coup les variables titre contenus etc non plus...
fait donc un test en affichant ta requête et éxécute là sous phpmyadmin pour voir...
redonne moi le résultat après

Posté : 25 avr. 2006, 15:26
par polusdemus
si j'ai fait ce qu'il fallait voila ce qyui c'est affiché :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'expediteur``lu` SELECT * FROM `messagerie` WHERE 1 LIMIT 0, 30' at line 1

Posté : 25 avr. 2006, 15:29
par jojolapine
donne moi le résultat du echo $sql aussi, je peu pas deviner à quoi ressemble ta requête... :wink:

Posté : 25 avr. 2006, 15:32
par polusdemus
désolé je comprends pas tyout ce que tu dis!! :lol: mais j'ai enlevé ce bout de code

Code : Tout sélectionner

<? mysql_connect("***","**","**"); // connection a la base de donné mysql_select_db("***"); $reponse = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc "); while ($donnees = mysql_fetch_array($reponse) ) { ?> <? mysql_query("UPDATE messagerie SET lu='0' WHERE `destinataire`='$pseudo_membre' "); ?>
mais les messages ne s'affichant tjs pas!!

Posté : 25 avr. 2006, 15:40
par jojolapine
essaye de mettre juste derrière ta requête sql, ceci:
echo "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc "
ensuite, tu vas sur ta page et ta requête sera affichée...
montre moi ce que ça donne...
PS: je serai toi je changerai la couleur de la police de caractère parce qu'on voit pas grand chose :lol:

Posté : 25 avr. 2006, 15:44
par polusdemus
ou doit le mettre je n'ai aps bien compris !!!

Posté : 25 avr. 2006, 15:46
par jojolapine
ton code tu l'écrits comme ça:
<?php

session_start();

if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
{
    echo 'Vous n\'êtes pas autorisez à acceder à cette page.'; //Si non
}
else //Si oui
{

?>
<html>
<?
mysql_connect("****","******","******"); // connection a la base de donné
mysql_select_db("***");  

$requete1 = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' ");
echo "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' "; // les message du joueur  changer $pseudo_membre
$var1 = mysql_fetch_array ($requete1);
    $titre = $var1['titre'];
    $expediteur  = $var1['expediteur'];
    $message = $var1['message'];
    $mktime = $var1['mktime'];
?>
<body>
<table width="960" border="1">
  <tr>
    <td width="155"><a href="pdf_espace_membre.php">espace membre </a></td>
    <td width="193"><a href="pdf_espace_membre_changeinfo.php">changer vos informations </a></td>
    <td width="134"><a href="messagerie.php">liure les messages </a></td>
    <td width="135"><a href="message.php">ecrire messages </a></td>
    <td width="309"><a href="deconnexion.php">deconnexion</a></td>
  </tr>
</table>
<p align="center" class="copyright">&nbsp;</p>
<p align="center" class="copyright">Message re&ccedil;u </p>
<form action="suprime_message.php" method="POST">
  <span class="copyright">
  <?
mysql_connect("****","******","******"); // connection a la base de donné
mysql_select_db("***");  

$reponse = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc ");
echo "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc ";
while ($donnees = mysql_fetch_array($reponse) )  
{ ?>
  <? mysql_query("UPDATE messagerie SET lu='0' WHERE `destinataire`='$pseudo_membre' "); ?>
  </span>
  <table width="785" border="1" align="center" bgcolor="#393939">
    <tr>
      <th width="70" scope="col"><div align="center" class="copyright">Expediteur</div></th>
      <th width="65" scope="col"><div align="center" class="copyright">Date</div></th>
      <th width="100" scope="col"><div align="center" class="copyright">Titre</div></th>
      <th width="450" scope="col"><div align="center" class="copyright">Message</div></th>
   
      <div align="center" class="copyright"><img src="enveloppe.jpg" alt="r&eacute;pondre" border="0">&nbsp;</div></th>
    </tr>
    <tr>
      <th scope="col"><span class="copyright">
      </span>
      <div align="center" class="copyright"><? echo $donnees['expediteur']; ?></div></th>
      <th scope="col"><span class="copyright">
        </span>
        <div align="center" class="copyright"><? echo date('d/m/Y', $donnees['mktime']);?>        </div>
      <p class="copyright"><? echo date('H\h i\m\i\n s\s', $donnees['mktime']); ?></p></th>
      <th scope="col"><span class="copyright"><? echo $donnees['titre']; ?>
      </span>
      <div align="center"></div></th>
      <th scope="col"><span class="copyright">
      </span>
      <div align="center" class="copyright"><? echo stripslashes($donnees['message']); ?></div></th>
      <th width="66" class="copyright" scope="col">
        <input type="checkbox" name="cocher<? echo $donnees['id']; ?>">
      </th>
    </tr>
  </table>
  <p>
    <?
}
?>
  </p>
  <p align="center">
    <select name="suprime_message">
      <option value="message_select">Effacer les messages sélectionnés</option>
      <option value="tout_message">Effacer tous les messages</option>
    </select>
    <input type="submit" value="ok" />
    &nbsp;
    </p>
    </p>
  <p>
</form>

  <?
}
?>
edit: ça va afficher deux requête sur ta page que tu testeras dans phpmyadmin...

Posté : 25 avr. 2006, 15:48
par polusdemus
voila ce qu'il ya sur la page

SELECT * FROM messagerie WHERE `destinataire`='' espace membre changer vos informations liure les messages ecrire messages deconnexion



Message reçu

SELECT * FROM messagerie WHERE `destinataire`='' order by mktime desc

Posté : 25 avr. 2006, 15:49
par momox
Dis moi, dans ta requete pour recuperer les messages, t'aurais pas oublié la concatenation de ta variable contenant le pseudo du membre?
Car la, tel que tu as mis ta requete, il va rechercher a chaque fois les messages d'un membre nommé $pseudo_membre et non nommé par le contenu de ta variable.
@+

Posté : 25 avr. 2006, 15:50
par Ryle
Pour l'exécution de tes requêtes utilise des variables pour les stocker et les exécuter :
$sql = "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc ";
$reponse = mysql_query($sql); 
C'est plus pratique et tu peux ainsi ajouter un "echo $sql;" juste après pour afficher la requête qui a été exécuté (avec les variables remplacées par leurs valeurs)

Mais sinon pourquoi y a-t-il deux mysql_connect() et mysql_select_db() ?
Pis pourquoi exécuter deux fois la requête "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' " ?

Posté : 25 avr. 2006, 15:51
par jojolapine
nan c'est bon ça requête est correctement formulée, seulement, comme tu doit le voir toi même polusdemus, ta variable $pseudo_membre est vide...
donc c'est normal que tu ne récupère aucun message, la question, où est stockée le pseudo de ton utilisateur...?

Posté : 25 avr. 2006, 15:52
par polusdemus
merci bcp de m'avoir aider mais c'est bon sa marche et j'ai trouvé la raison c'est vraiment une erreur des plus bète j'avais mis

$pseudo_membre

au lieu de

$pseudo

désolé de t'avoir fait reflechir pour rien