le 29/12/2008 à 14:45
problème_forum
Bonjours les amis,
je suis entrain de développer la partie forum de mon site mais j'ai un petit problème au niveau de l'affichage des messages postés au niveau de la case des message!! mais au lieu de faire ça il m'affiche le message en haut. mais je ne sais pas pourquoi??
je suis entrain de développer la partie forum de mon site mais j'ai un petit problème au niveau de l'affichage des messages postés au niveau de la case des message!! mais au lieu de faire ça il m'affiche le message en haut. mais je ne sais pas pourquoi??
//definition d'une fonction message
function code($data2)
{
if(isset($data2))
echo"$data2";
}
//Fonction listant les pages
function get_list_page($page, $nb_page, $link, $nb = 2){
$list_page = array();
for ($i=1; $i <= $nb_page; $i++){
if (($i < $nb) OR ($i > $nb_page - $nb) OR (($i < $page + $nb) AND ($i > $page -$nb)))
$list_page[] = ($i==$page)?'<strong>'.$i.'</strong>':'<a href="'.$link.'&page='.$i.'">'.$i.'</a>';
else{
if ($i >= $nb AND $i <= $page - $nb)
$i = $page - $nb;
elseif ($i >= $page + $nb AND $i <= $nb_page - $nb)
$i = $nb_page - $nb;
$list_page[] = '...';
}
}
$print= implode('-', $list_page);
return $print;
}
?>
<body>
<div id="banniere"></div>
<?php
//Maintenant on se connecte à la base de données
include("identifiants.php");
mysql_connect("localhost", "root", "");
mysql_select_db("test");
//On récupère la valeur de t
$topic = (int) $_GET['t'];
//A partir d'ici, on va compter le nombre de messages pour n'afficher que les 15 premiers
$requete1 = mysql_query("
SELECT topic_titre, topic_post, forum_topic.forum_id, topic_last_post,
forum_name, auth_view, auth_topic, auth_post
FROM forum_topic
LEFT JOIN forum_forum ON forum_topic.forum_id = forum_forum.forum_id
WHERE topic_id = '".$topic."'") or die (mysql_error());
$data1 = mysql_fetch_assoc($requete1);
if (!verif_auth($data1['auth_view']))
{
exit("Vous n avez pas le droit de vous trouver ici ! </div></body></html>");
}
$totalDesMessages = $data1['topic_post'] + 1;
$nombreDeMessagesParPage = 15;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
?>
<div id="corps_forum">
<a href ="./index_forum.php">Index du forum</a> /
<a href="./voirforum.php?f=<?php echo $data1['forum_id'] ?>"><?php echo stripslashes(htmlspecialchars($data1['forum_name'])); ?></a> /
<a href="./voirtopic.php?t=<?php echo $topic ?>"><?php echo stripslashes(htmlspecialchars($data1['topic_titre'])); ?></a>
<?php
// A partir d'ici, comme d'habitude, on affiche des options pour le visiteur
if (isset($_SESSION['pseudo'])) // Si le membre est connecté
{
//Voici les options
echo'<p>Vous êtes connecté en tant que
<a href="./voirprofil.php?m='.intval($_SESSION['id']).'&action=consulter">
'.stripslashes(htmlspecialchars($_SESSION['pseudo'])).'</a><br />
<a href="./voirprofil.php?action=modifier">Modifier mon profil</a><br />
<a href="./messagesprives.php">Consulter mes messages privés</a><br />
<a href ="./deconnexion.php">Se déconnecter</a><br /></p>';
}
// Sinon, on propose de se connecter ou de s'enregistrer
else
{
echo'<p>Vous n êtes pas connecté <br />
<a href="./connexion.php">Se connecter</a><br />
<a href="./register.php">Pas encore inscrit ?</a><br /></p>';
}
?>
<?php
//Nombre de pages
if (isset($_GET['page']))
{
$page = intval($_GET['page']);
}
else
{
$page = 1;
}
//On affiche les pages 1-2-3 etc...
echo '<p>Page : ';
echo get_list_page($page, $nombreDePages, './voirtopic.php?t='.$topic);
echo'</p>';
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
//On affiche le titre :
echo '<h1>'.stripslashes(htmlspecialchars($data1['topic_titre'])).'</h1>';
if (verif_auth($data1['auth_post']))
{
//On affiche l'image répondre
echo'<a href="./poster.php?action=repondre&t='.$topic.'">
<img src="./images/repondre.gif" alt="Répondre" title="Répondre à ce topic" /></a>';
}
if (verif_auth($data1['auth_topic']))
{
//On affiche l'image nouveau topic
echo'<a href="./poster.php?action=nouveautopic&f='.$data1['forum_id'].'">
<img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>';
}
//Enfin on commence la boucle !
?>
<?php
$requete2 = mysql_query('
SELECT post_id , post_createur , post_texte , post_time ,
membre_id, membre_pseudo, membre_inscrit, membre_avatar, membre_localisation, membre_post, membre_signature
FROM forum_post
LEFT JOIN forum_membres ON forum_membres.membre_id = forum_post.post_createur
WHERE topic_id ="'.$topic.'"
ORDER BY post_id
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage . '')
or die(mysql_error());
//On vérifie que la requête a bien retourné des messages
if (mysql_num_rows($requete2) < 1)
{
echo'<p>Il n y a aucun post sur ce topic, vérifiez l url et reessayez</p>';
}
else
{
//Si tout roule on affiche notre tableau puis on remplit avec une boucle
?><table>
<tr>
<th class="vt_auteur"><strong>Auteurs</strong></th>
<th class="vt_mess"><strong>Messages</strong></th>
</tr>
<?php
while ($data2 = mysql_fetch_assoc($requete2))
{
//On commence à afficher le pseudo du créateur du message :
//On vérifie les droits du membre
//(partie du code commentée plus tard)
echo'<tr><td><strong>
<a href="./voirprofil.php?m='.$data2['membre_id'].'&action=consulter">
'.stripslashes(htmlspecialchars($data2['membre_pseudo'])).'</a></strong></td>';
/* Si on est l'auteur du message, on affiche des liens pour
Modérer celui-ci.
Les modérateurs pourront aussi le faire, il faudra donc revenir sur
ce code un peu plus tard ! */
if (intval($_SESSION['id']) == $data2['post_createur'])
{
echo'<td id=p_'.$data2['post_id'].'>Posté à '.date('H\hi \l\e d M y',$data2['post_time']).'
<a href="./poster.php?p='.$data2['post_id'].'&action=delete">
<img src="./images/supprimer.gif" alt="Supprimer"
title="Supprimer ce message" /></a>
<a href="./poster.php?p='.$data2['post_id'].'&action=edit">
<img src="./images/editer.gif" alt="Editer"
title="Editer ce message" /></a></td></tr>';
}
else
{
echo'<td>
Posté à '.date('H\hi \l\e d M y',$data2['post_time']).'
</td></tr>';
}
//Détails sur le membre qui a posté
echo'<tr><td>
<img src="./images/avatars/'.$data2['membre_avatar'].'" alt="" />
<br />Membre inscrit le '.date('d/m/Y',$data2['membre_inscrit']).'
<br />Messages : '.$data2['membre_post'].'<br />
Localisation : '.stripslashes(htmlspecialchars($data2['membre_localisation'])).'</td>';
//Message
echo'<td>'.code(nl2br(stripslashes(htmlspecialchars($data2['post_texte'])))).'
<br /><hr />'.code(nl2br(stripslashes(htmlspecialchars($data2['membre_signature'])))).'</td></tr>';
} //Fin de la boucle ! \o/
?>
</table>