messagerie interne les message ne s'affiche pas

Eléphant du PHP | 83 Messages

25 avr. 2006, 14:56

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>
 
  <?
}
?>

ViPHP
ViPHP | 3607 Messages

25 avr. 2006, 15:16

je ne voit nul part l'initialisation de la variable $pseudo_membre ?
est tu sûr qu'elle contient ce que tu souhaite?

Eléphant du PHP | 83 Messages

25 avr. 2006, 15:18

Mais je ne vois comment cela pourait empechger l'affichage des messages ???

ViPHP
ViPHP | 3607 Messages

25 avr. 2006, 15:23

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

Eléphant du PHP | 83 Messages

25 avr. 2006, 15:26

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

ViPHP
ViPHP | 3607 Messages

25 avr. 2006, 15:29

donne moi le résultat du echo $sql aussi, je peu pas deviner à quoi ressemble ta requête... :wink:

Eléphant du PHP | 83 Messages

25 avr. 2006, 15:32

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!!

ViPHP
ViPHP | 3607 Messages

25 avr. 2006, 15:40

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:

Eléphant du PHP | 83 Messages

25 avr. 2006, 15:44

ou doit le mettre je n'ai aps bien compris !!!

ViPHP
ViPHP | 3607 Messages

25 avr. 2006, 15:46

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...

Eléphant du PHP | 83 Messages

25 avr. 2006, 15:48

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

Mammouth du PHP | 1511 Messages

25 avr. 2006, 15:49

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.
@+

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 avr. 2006, 15:50

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' " ?

ViPHP
ViPHP | 3607 Messages

25 avr. 2006, 15:51

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...?

Eléphant du PHP | 83 Messages

25 avr. 2006, 15:52

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