Souci d'affichage
Résolu
Lucryio
Messages postés
206
Date d'inscription
Statut
Membre
Dernière intervention
-
Lucryio Messages postés 206 Date d'inscription Statut Membre Dernière intervention -
Lucryio Messages postés 206 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je reviens vers vous pour un souci de MP, en faite l'envoie est correct, ais l'affichage ne l'est pas puisqu'il n'affiche aucun MP.
Voici mon code :
Donc les MP s'enregistre bien dans la bdd sans souci mais ne s'affiche pas sur la page où il doit s'afficher.
Une idée ?
Merci par avance pour votre réponse.
Je reviens vers vous pour un souci de MP, en faite l'envoie est correct, ais l'affichage ne l'est pas puisqu'il n'affiche aucun MP.
Voici mon code :
<?php $titre="Messages Privés"; $balises = true; include("includes/debut.php"); include("bbcode.php"); ?> <style> .mp_titre { width:65%; } .mp_expediteur { width:10%; } .mp_time { width:20%; } </style> <?php $action = (isset($_GET['action']))?htmlspecialchars($_GET['action']):''; //On récupère la valeur de la variable $action switch($action) { case "consulter": //1er cas : on veut lire un mp echo'<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./messagesprives.php">Messagerie privée</a> --> Consulter un message</p>'; $id_mess = (int) $_GET['id']; //On récupère la valeur de l'id echo '<h1>Consulter un message</h1><br /><br />'; //La requête nous permet d'obtenir les infos sur ce message : $query = $bdd->prepare('SELECT mp_expediteur, mp_receveur, mp_titre, mp_time, mp_text, mp_lu, membre_id, membre_pseudo, membre_avatar, membre_localisation, membre_inscrit, membre_post, membre_signature FROM forum_mp LEFT JOIN forum_membres ON membre_id = mp_expediteur WHERE mp_id = :id'); $query->bindValue(':id',$id_mess,PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); // Attention ! Seul le receveur du mp peut le lire ! if ($id != $data['mp_receveur']) erreur(ERR_WRONG_USER); //bouton de réponse echo'<p><a href="./messagesprives.php?action=repondre&dest='.$data['mp_expediteur'].'"> <img src="./images/repondre.gif" alt="Répondre" title="Répondre à ce message" /></a></p>'; ?> <table> <tr> <th class="vt_auteur"><strong>Auteur</strong></th> <th class="vt_mess"><strong>Message</strong></th> </tr> <tr> <td> <?php echo'<strong> <a href="./voirprofil.php?m='.$data['membre_id'].'&action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></strong></td> <td>Posté à '.date('H\hi \l\e d M Y',$data['mp_time']).'</td>'; ?> </tr> <tr> <td> <?php //Ici des infos sur le membre qui a envoyé le mp echo'<p><img src="./images/avatars/'.$data['membre_avatar'].'" alt="" /> <br />Membre inscrit le '.date('d/m/Y',$data['membre_inscrit']).' <br />Messages : '.$data['membre_post'].' <br />Localisation : '.stripslashes(htmlspecialchars($data['membre_localisation'])).'</p> </td><td>'; echo code(nl2br(stripslashes(htmlspecialchars($data['mp_text'])))).' <hr />'.code(nl2br(stripslashes(htmlspecialchars($data['membre_signature'])))).' </td></tr></table>'; if ($data['mp_lu'] == 0) //Si le message n'a jamais été lu { $query->CloseCursor(); $query=$bdd->prepare('UPDATE forum_mp SET mp_lu = :lu WHERE mp_id= :id'); $query->bindValue(':id',$id_mess, PDO::PARAM_INT); $query->bindValue(':lu','1', PDO::PARAM_STR); $query->execute(); $query->CloseCursor(); } //Ici on a besoin de la valeur de l'id du mp que l'on veut lire break; case "nouveau": //2eme cas : on veut poster un nouveau mp echo'<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./messagesprives.php">Messagerie privée</a> --> Ecrire un message</p>'; echo '<h1>Nouveau message privé</h1><br /><br />'; ?> <form method="post" action="postok.php?action=nouveaump" name="formulaire"> <p> <label for="to">Envoyer à : </label> <input type="text" size="30" id="to" name="to" /> <br /> <label for="titre">Titre : </label> <input type="text" size="80" id="titre" name="titre" /> <br /><br /> <input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" /> <input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" /> <input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" /> <input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" /> <br /><br /> <img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" /> <img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" /> <img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" /> <img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" /> <img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" /> <img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" /> <img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" /> <img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" /> <img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" /> <textarea cols="80" rows="8" id="message" name="message"></textarea> <br /> <input type="submit" name="submit" value="Envoyer" /> <input type="reset" name="Effacer" value="Effacer" /></p> </form> <?php //Ici on a besoin de la valeur d'aucune variable :p break; case "repondre": //3eme cas : on veut répondre à un mp reçu echo'<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./messagesprives.php">Messagerie privée</a> --> Ecrire un message</p>'; echo '<h1>Répondre à un message privé</h1><br /><br />'; $dest = (int) $_GET['dest']; ?> <form method="post" action="postok.php?action=repondremp&dest=<?php echo $dest ?>" name="formulaire"> <p> <label for="titre">Titre : </label><input type="text" size="80" id="titre" name="titre" /> <br /><br /> <input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" /> <input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" /> <input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" /> <input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" /> <br /><br /> <img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" /> <img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" /> <img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" /> <img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" /> <img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" /> <img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" /> <img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" /> <img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" /> <img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" /> <br /><br /> <textarea cols="80" rows="8" id="message" name="message"></textarea> <br /> <input type="submit" name="submit" value="Envoyer" /> <input type="reset" name="Effacer" value="Effacer"/> </p></form> <?php //Ici on a besoin de la valeur de l'id du membre qui nous a posté un mp break; case "supprimer": //4eme cas : on veut supprimer un mp reçu //On récupère la valeur de l'id $id_mess = (int) $_GET['id']; //Il faut vérifier que le membre est bien celui qui a reçu le message $query=$bdd->prepare('SELECT mp_receveur FROM forum_mp WHERE mp_id = :id'); $query->bindValue(':id',$id_mess,PDO::PARAM_INT); $query->execute(); $data = $query->fetch(); //Sinon la sanction est terrible :p if ($id != $data['mp_receveur']) erreur(ERR_WRONG_USER); $query->CloseCursor(); //2 cas pour cette partie : on est sûr de supprimer ou alors on ne l'est pas $sur = (int) $_GET['sur']; //Pas encore certain if ($sur == 0) { echo'<p>Etes-vous certain de vouloir supprimer ce message ?<br /> <a href="./messagesprives.php?action=supprimer&id='.$id_mess.'&sur=1"> Oui</a> - <a href="./messagesprives.php">Non</a></p>'; } //Certain else { $query=$bdd->prepare('DELETE from forum_mp WHERE mp_id = :id'); $query->bindValue(':id',$id_mess,PDO::PARAM_INT); $query->execute(); $query->CloseCursor(); echo'<p>Le message a bien été supprimé.<br /> Cliquez <a href="./messagesprives.php">ici</a> pour revenir à la boite de messagerie.</p>'; } //Ici on a besoin de la valeur de l'id du mp à supprimer break; default; //Si rien n'est demandé ou s'il y a une erreur dans l'url, on affiche la boite de mp. echo'<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./messagesprives.php">Messagerie privée</a>'; echo '<h1>Messagerie Privée</h1><br /><br />'; $query=$bdd->prepare('SELECT mp_lu, mp_id, mp_expediteur, mp_titre, mp_time, ID, pseudo FROM forum_mp LEFT JOIN membres ON forum_mp.mp_expediteur = membres.ID WHERE mp_receveur = :id ORDER BY mp_id DESC'); $query->bindValue(':id',$id,PDO::PARAM_INT); $query->execute(); echo'<p><a href="./messagesprives.php?action=nouveau"> <img src="./images/nouveau.gif" alt="Nouveau" title="Nouveau message" /> </a></p>'; if ($query->rowCount()>0) { ?> <table> <tr> <th></th> <th class="mp_titre"><strong>Titre</strong></th> <th class="mp_expediteur"><strong>Expéditeur</strong></th> <th class="mp_time"><strong>Date</strong></th> <th><strong>Action</strong></th> </tr> <?php //On boucle et on remplit le tableau while ($data = $query->fetch()) { echo'<tr>'; //Mp jamais lu, on affiche l'icone en question if($data['mp_lu'] == 0) { echo'<td><img src="./images/message_non_lu.gif" alt="Non lu" /></td>'; } else //sinon une autre icone { echo'<td><img src="./images/message.gif" alt="Déja lu" /></td>'; } echo'<td id="mp_titre"> <a href="./messagesprives.php?action=consulter&id='.$data['mp_id'].'"> '.stripslashes(htmlspecialchars($data['mp_titre'])).'</a></td> <td id="mp_expediteur"> <a href="./voirprofil.php?action=consulter&m='.$data['membre_id'].'"> '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></td> <td id="mp_time">'.date('H\hi \l\e d M Y',$data['mp_time']).'</td> <td> <a href="./messagesprives.php?action=supprimer&id='.$data['mp_id'].'&sur=0">supprimer</a></td></tr>'; } //Fin de la boucle $query->CloseCursor(); echo '</table>'; } //Fin du if else { echo'<p>Vous n\'avez aucun message privé pour l\'instant, cliquez <a href="./index.php">ici</a> pour revenir à la page d index</p>'; } } //Fin du switch ?> </div> </body> </html>
Donc les MP s'enregistre bien dans la bdd sans souci mais ne s'affiche pas sur la page où il doit s'afficher.
Une idée ?
Merci par avance pour votre réponse.
1 réponse
Bonjour,
Commence par ajouter la ligne
au début de ton script.
Ensuite... regardes si des erreurs n'apparaissent pas dans ta page
Et si (et SEULEMENT SI...) tu ne trouves toujours pas après ça.....
Indique nous quelle est la parti du code, qui selon toi, ne fonctionne pas.
Là... je ne vais pas m'amuser à tout décortiquer (vu que tu as mis la totalité du code...)
Commence par ajouter la ligne
error_reporting(E_ALL);
au début de ton script.
Ensuite... regardes si des erreurs n'apparaissent pas dans ta page
Et si (et SEULEMENT SI...) tu ne trouves toujours pas après ça.....
Indique nous quelle est la parti du code, qui selon toi, ne fonctionne pas.
Là... je ne vais pas m'amuser à tout décortiquer (vu que tu as mis la totalité du code...)
Lucryio
Messages postés
206
Date d'inscription
Statut
Membre
Dernière intervention
Merci beaucoup pour ton post, j'ai pas pensé à cette fonction du coup, j'ai résolu mon souci merci à toi encore une fois.