[Résolue][PHP]Page qui plante avec page blanche
Dernière réponse : dans Programmation
Bonjour, j'ai une page qui me sert a envoyer les messages poster, elle s'appelle postok.php, je sais c'est une page pompé d'un tutoriel mais c'est fait exprès je définie juste mon architecture que je modifie après pour avoir mon vraie site ici ce n'est juste qu'un site de test. Cette page reste blanche rien est fait, je dois avoir un problème de syntaxe ca m'est déjà arriver sauf que ici je ne trouve pas le soucis... Merci de m'aider.
Postok.php
Cordialement
Postok.php
<?php
session_start();
$titre="Poster";
include("./includes/debut.php");
include("./includes/menu.php");
include("./includes/identifiants.php");
//On récupère la valeur de la variable action
$action = (isset($_GET['action']))?htmlspecialchars($_GET['action']):'';
// Si le membre n'est pas connecté, il est arrivé ici par erreur
if ($id==0) erreur(ERR_IS_NOT_CO);
switch($action)
{
//Premier cas : nouveau topic
case "nouveautopic":
if (!verif_auth($data['auth_annonce']) && isset($_POST['mess']))
{
exit('</div></body></html>');
}
//On passe le message dans une série de fonction
$message = $_POST['message'];
$mess = $_POST['mess'];
//Pareil pour le titre
$titre = $_POST['titre'];
//ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable f
$forum = (int) $_GET['f'];
$temps = time();
if (empty($message) || empty($titre))
{
echo'<p>Votre message ou votre titre est vide,
cliquez <a href="./poster.php?action=nouveautopic&f='.$forum.'">ici</a> pour recommencer</p>';
}
else //Si jamais le message n'est pas vide
{
//On entre le topic dans la base de donnée en laissant
//le champ topic_last_post à 0
$query=$db->prepare('INSERT INTO forum_topic
(forum_id, topic_titre, topic_createur, topic_vu, topic_time, topic_genre)
VALUES(:forum, :titre, :id, 1, :temps, :mess)');
$query->bindValue(':forum', $forum, PDO::PARAM_INT);
$query->bindValue(':titre', $titre, PDO::PARAM_STR);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->bindValue(':temps', $temps, PDO::PARAM_INT);
$query->bindValue(':mess', $mess, PDO::PARAM_STR);
$query->execute();
$nouveautopic = $db->lastInsertId(); //Notre fameuse fonction !
$query->CloseCursor();
//Puis on entre le message
$query=$db->prepare('INSERT INTO forum_post
(post_createur, post_texte, post_time, topic_id, post_forum_id)
VALUES (:id, :mess, :temps, :nouveautopic, :forum)');
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->bindValue(':mess', $message, PDO::PARAM_STR);
$query->bindValue(':temps', $temps,PDO::PARAM_INT);
$query->bindValue(':nouveautopic', (int) $nouveautopic, PDO::PARAM_INT);
$query->bindValue(':forum', $forum, PDO::PARAM_INT);
$query->execute();
$nouveaupost = $db->lastInsertId(); //Encore notre fameuse fonction !
$query->CloseCursor();
//Ici on update comme prévu la valeur de topic_last_post et de topic_first_post
$query=$db->prepare('UPDATE forum_topic
SET topic_last_post = :nouveaupost,
topic_first_post = :nouveaupost
WHERE topic_id = :nouveautopic');
$query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);
$query->bindValue(':nouveautopic', (int) $nouveautopic, PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Enfin on met à jour les tables forum_forum et forum_membres
$query=$db->prepare('UPDATE forum_forum SET forum_post = forum_post + 1 ,forum_topic = forum_topic + 1,
forum_last_post_id = :nouveaupost
WHERE forum_id = :forum');
$query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);
$query->bindValue(':forum', (int) $forum, PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
$query=$db->prepare('UPDATE forum_membres SET membre_post = membre_post + 1 WHERE membre_id = :id');
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Et un petit message
echo'<p>Votre message a bien été ajouté!<br /><br />Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />
Cliquez <a href="./voirtopic.php?t='.$nouveautopic.'">ici</a> pour le voir</p>';
}
break; //Houra !
//Deuxième cas : répondre
$requete = mysql_query('SELECT topic_locked FROM forum_topic WHERE topic_id = '.$topic);
$data = mysql_fetch_assoc($requete);
if ($data['topic_locked'] != 0)
{
echo'<p>Le topic est verrouillé!</p><p>Cliquez <a href="./index.php">ici</a>
pour revenir à l index du forum</p>
<p>Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a>
pour retourner au topic</p></div></body></html>';
exit();
}
case "repondre":
$message = $_POST['message'];
//ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable t
$topic = (int) $_GET['t'];
$temps = time();
if (empty($message))
{
echo'<p>Votre message est vide, cliquez <a href="./poster.php?action=repondre&t='.$topic.'">ici</a> pour recommencer</p>';
}
else //Sinon, si le message n'est pas vide
{
//On récupère l'id du forum
$query=$db->prepare('SELECT forum_id, topic_post FROM forum_topic WHERE topic_id = :topic');
$query->bindValue(':topic', $topic, PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
$forum = $data['forum_id'];
//Puis on entre le message
$query=$db->prepare('INSERT INTO forum_post
(post_createur, post_texte, post_time, topic_id, post_forum_id)
VALUES(:id,:mess,:temps,:topic,:forum)');
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->bindValue(':mess', $message, PDO::PARAM_STR);
$query->bindValue(':temps', $temps, PDO::PARAM_INT);
$query->bindValue(':topic', $topic, PDO::PARAM_INT);
$query->bindValue(':forum', $forum, PDO::PARAM_INT);
$query->execute();
$nouveaupost = $db->lastInsertId();
$query->CloseCursor();
//On change un peu la table forum_topic
$query=$db->prepare('UPDATE forum_topic SET topic_post = topic_post + 1, topic_last_post = :nouveaupost WHERE topic_id =:topic');
$query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);
$query->bindValue(':topic', (int) $topic, PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Puis même combat sur les 2 autres tables
$query=$db->prepare('UPDATE forum_forum SET forum_post = forum_post + 1 , forum_last_post_id = :nouveaupost WHERE forum_id = :forum');
$query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);
$query->bindValue(':forum', (int) $forum, PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
$query=$db->prepare('UPDATE forum_membres SET membre_post = membre_post + 1 WHERE membre_id = :id');
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Et un petit message
$nombreDeMessagesParPage = 15;
$nbr_post = $data['topic_post']+1;
$page = ceil($nbr_post / $nombreDeMessagesParPage);
echo'<p>Votre message a bien été ajouté!<br /><br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />
Cliquez <a href="./voirtopic.php?t='.$topic.'&page='.$page.'#p_'.$nouveaupost.'">ici</a> pour le voir</p>';
}//Fin du else
break;
case "edit": //Si on veut éditer le post
//On récupère la valeur de p
$post = (int) $_GET['p'];
//On récupère le message
$message = $_POST['message'];
//Ensuite on vérifie que le membre a le droit d'être ici (soit le créateur soit un modo/admin)
$query=$db->prepare('SELECT post_createur, post_texte, post_time, topic_id, auth_modo
FROM forum_post
LEFT JOIN forum_forum ON forum_post.post_forum_id = forum_forum.forum_id
WHERE post_id=:post');
$query->bindValue(':post',$post,PDO::PARAM_INT);
$query->execute();
$data1 = $query->fetch();
$topic = $data1['topic_id'];
//On récupère la place du message dans le topic (pour le lien)
$query = $db->prepare('SELECT COUNT(*) AS nbr FROM forum_post
WHERE topic_id = :topic AND post_time < '.$data1['post_time']);
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
$query->execute();
$data2=$query->fetch();
if (!verif_auth($data1['auth_modo'])&& $data1['post_createur'] != $id)
{
// Si cette condition n'est pas remplie ça va barder :o
erreur(ERR_AUTH_EDIT);
}
else //Sinon ça roule et on continue
{
$query=$db->prepare('UPDATE forum_post SET post_texte = :message WHERE post_id = :post');
$query->bindValue(':message',$message,PDO::PARAM_STR);
$query->bindValue(':post',$post,PDO::PARAM_INT);
$query->execute();
$nombreDeMessagesParPage = 15;
$nbr_post = $data2['nbr']+1;
$page = ceil($nbr_post / $nombreDeMessagesParPage);
echo'<p>Votre message a bien été édité!<br /><br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />
Cliquez <a href="./voirtopic.php?t='.$topic.'&page='.$page.'#p_'.$post.'">ici</a> pour le voir</p>';
$query->CloseCursor();
}
break;
case "delete": //Si on veut supprimer le post
//On récupère la valeur de p
$post = (int) $_GET['p'];
$requete1 = mysql_query('SELECT post_createur, post_texte, forum_id, topic_id, auth_modo
FROM forum_post
LEFT JOIN forum_forum ON forum_post.post_forum_id = forum_forum.forum_id
WHERE post_id=:post');
$query->bindValue(':post',$post,PDO::PARAM_INT);
$query->execute();
$data = $query->fetch();
$topic = $data['topic_id'];
$forum = $data['forum_id'];
//Ensuite on vérifie que le membre a le droit d'être ici
//(soit le créateur soit un modo/admin)
if (!verif_auth($data['auth_modo']) && $data['post_createur'] != $id)
{
// Si cette condition n'est pas remplie ça va barder :o
erreur(ERR_AUTH_DELETE);
}
else //Sinon ça roule et on continue
{
//Ici on vérifie plusieurs choses :
//est-ce un premier post ? Dernier post ou post classique ?
$query = $db->prepare('SELECT topic_first_post, topic_last_post, FROM forum_topic
WHERE topic_id = :topic');
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
$query->execute();
$data_post=$query->fetch();
//On distingue maintenant les cas
if ($data_post['topic_first_post']==$post) //Si le message est le premier
{
//Les autorisations ont changé !
//Normal, seul un modo peut décider de supprimer tout un topic
if (!verif_auth($data['auth_modo']))
{
erreur('ERR_AUTH_DELETE_TOPIC');
}
//Il faut s'assurer que ce n'est pas une erreur
echo'<p>Vous avez choisi de supprimer un post.
Cependant ce post est le premier du topic. Voulez vous supprimer le topic ? <br />
<a href="./postok.php?action=delete_topic&t='.$topic.'">oui</a> - <a href="./voirtopic.php?t='.$topic.'">non</a>
</p>';
$query->CloseCursor();
}
elseif ($data_post['topic_last_post']==$post) //Si le message est le dernier
{
//On supprime le post
$query=$db->prepare('DELETE FROM forum_post WHERE post_id = :post');
$query->bindValue(':post',$post,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//On modifie la valeur de topic_last_post pour cela on
//récupère l'id du plus récent message de ce topic
$query=$db->prepare('SELECT post_id FROM forum_post WHERE topic_id = :topic
ORDER BY post_id DESC LIMIT 0,1');
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
$last_post_topic=$data['post_id']
$query->CloseCursor();
//On fait de même pour forum_last_post_id
$query=$db->prepare('SELECT post_id FROM forum_post WHERE post_forum_id = :forum
ORDER BY post_id DESC LIMIT 0,1');
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
$last_post_forum=$data['post_id']
$query->CloseCursor();
//On met à jour la valeur de topic_last_post
$query=$db->prepare('UPDATE forum_topic SET topic_last_post = :last
WHERE topic_last_post = :post');
$query->bindValue(':last',$last_post_topic,PDO::PARAM_INT);
$query->bindValue(':post',$post,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//On enlève 1 au nombre de messages du forum et on met à
//jour forum_last_post
$query=$db->prepare('UPDATE forum_forum SET forum_post = forum_post - 1, forum_last_post_id = :last
WHERE forum_id = :forum');
$query->bindValue(':last',$last_post_forum,PDO::PARAM_INT);
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//On enlève 1 au nombre de messages du topic
$query=$db->prepare('UPDATE forum_topic SET topic_post = topic_post - 1
WHERE topic_id = :topic');
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//On enlève 1 au nombre de messages du membre
$query=$db->prepare('UPDATE forum_membres SET membre_post = membre_post - 1
WHERE membre_id = :id');
$query->bindValue(':id',$data['post_createur'],PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Enfin le message
echo'<p>Le message a bien été supprimé !<br />
Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> pour retourner au topic<br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum</p>';
}
else // Si c'est un post classique
{
//On supprime le post
$query=$db->prepare('DELETE FROM forum_post WHERE post_id = :post');
$query->bindValue(':post',$post,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//On enlève 1 au nombre de messages du forum
$query=$db->prepare('UPDATE forum_forum SET forum_post = forum_post - 1, forum_last_post_id = :last
WHERE forum_id = :forum');
$query->bindValue(':last',$last_post_forum,PDO::PARAM_INT);
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//On enlève 1 au nombre de messages du topic
$query=$db->prepare('UPDATE forum_topic SET topic_post = topic_post - 1
WHERE topic_id = :topic');
$query->bindValue(':topic',$topic,PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//On enlève 1 au nombre de messages du membre
$query=$db->prepare('UPDATE forum_membres SET membre_post = membre_post - 1
WHERE membre_id = :id');
$query->bindValue(':id',$data['post_createur'],PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
//Enfin le message
echo'<p>Le message a bien été supprimé !<br />
Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> pour retourner au topic<br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum</p>';
}
} //Fin du else
break;
case "delete_topic":
$topic = (int) $_GET['t'];
$requete1 = mysql_query('
SELECT forum_topic.forum_id, auth_modo
FROM forum_topic
LEFT JOIN forum_forum ON forum_topic.forum_id = forum_forum.forum_id
WHERE topic_id='.$topic.'');
$data1 = mysql_fetch_assoc($requete1);
$forum = $data1['forum_id'];
//Ensuite on vérifie que le membre a le droit d'être ici
//c'est-à-dire si c'est un modo / admin
if (!verif_auth($data1['auth_modo']))
{
// Si cette condition n'est pas remplie ça va barder :o
echo'<p>Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
exit();
}
else //Sinon ça roule et on continue
{
//On compte le nombre de post du topic
$requete_count_post = mysql_query("SELECT COUNT(*)
AS nombre_post
FROM forum_post
WHERE topic_id = $topic");
$data_nombrepost = mysql_fetch_assoc($requete_count_post);
$nombrepost = $data_nombrepost['nombre_post'];
//On supprime le topic
mysql_query("DELETE FROM forum_topic
WHERE topic_id = $topic");
//On enlève le nombre de post posté par chaque membre dans le topic
$requete_postparmembre = mysql_query('SELECT post_createur,
COUNT(*) AS nombre_mess
FROM forum_post
WHERE topic_id = '.$topic.'
GROUP BY post_createur');
while($data_postparmembre = mysql_fetch_assoc($requete_postparmembre))
{
mysql_query('UPDATE forum_membres
SET membre_post = membre_post - '.$data_postparmembre['nombre_mess'].'
WHERE membre_id = '.$data_postparmembre['post_createur']);
}
//Et on supprime les posts !
mysql_query("DELETE FROM forum_post
WHERE topic_id = $topic");
//Dernière chose, on récupère le dernier post du forum
$requete_forum = mysql_query('SELECT post_id
FROM forum_post
WHERE post_forum_id = '.$forum.'
ORDER BY post_id DESC
LIMIT 0,1');
$data_forum = mysql_fetch_assoc($requete_forum);
//Ensuite on modifie certaines valeurs :
mysql_query("UPDATE forum_forum
SET forum_topic = forum_topic - 1,
forum_post = forum_post - $nombrepost,
forum_last_post_id = $data_forum['post_id']
WHERE forum_id = $forum");
//Enfin le message
echo'<p>Le topic a bien été supprimé !<br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum</p>';
}
break;
case "lock": //Si on veut verrouiller le topic
//On récupère la valeur de t
$topic = (int) $_GET['t'];
$requete1 = mysql_query('
SELECT forum_topic.forum_id, auth_modo
FROM forum_topic
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
WHERE topic_id = '.$topic);
$data1 = mysql_fetch_assoc($requete1);
//Ensuite on vérifie que le membre a le droit d'être ici
if (!verif_auth($data1['auth_modo']))
{
// Si cette condition n'est pas remplie ça va barder :o
echo'<p>Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
exit();
}
else //Sinon ça roule et on continue
{
//On met à jour la valeur de topic_locked
mysql_query("UPDATE forum_topic
SET topic_locked = '1'
WHERE topic_id = '".$topic."'");
echo'<p>Le topic a bien été verrouillé ! <br />
Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> pour retourner au topic<br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum</p>';
}
break;
case "unlock": //Si on veut déverrouiller le topic
//On récupère la valeur de t
$topic = (int) $_GET['t'];
$requete1 = mysql_query('
SELECT forum_topic.forum_id, auth_modo
FROM forum_topic
LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id
WHERE topic_id = '.$topic.'');
$data1 = mysql_fetch_assoc($requete1);
//Ensuite on vérifie que le membre a le droit d'être ici
if (!verif_auth($data1['auth_modo']))
{
// Si cette condition n'est pas remplie ça va barder :o
echo'<p>Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
exit();
}
else //Sinon ça roule et on continue
{
//On met à jour la valeur de topic_locked
mysql_query("UPDATE forum_topic
SET topic_locked = '0'
WHERE topic_id = '".$topic."'");
echo'<p>Le topic a bien été déverrouillé !<br />
Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> pour retourner au topic<br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum</p>';
}
break;
case "deplacer":
$topic = (int) $_GET['t'];
$requete1 = mysql_query('
SELECT forum_topic.forum_id, auth_modo
FROM forum_topic
LEFT JOIN forum_forum
ON forum_forum.forum_id = forum_topic.forum_id
WHERE topic_id = '.$topic.'');
$data1 = mysql_fetch_assoc($requete1);
if (!verif_auth($data1['auth_modo']))
{
// Si cette condition n'est pas remplie ça va barder :o
echo'<p>Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
exit();
}
else //Sinon ça roule et on continue
{
$destination = (int) $_POST['dest'];
$origine = (int ) $_POST['from'];
//On déplace le topic
mysql_query("UPDATE forum_topic
SET forum_id = '".$destination."'
WHERE topic_id = '".$topic."'")
or die ("Un problème est survenu lors du déplacement");
//On déplace les posts
mysql_query("UPDATE forum_post
SET post_forum_id = '".$destination."'
WHERE topic_id = '".$topic."'")
or die ("Un problème est survenu lors du déplacement");
//On s'occupe d'ajouter / enlever les nombres de post / topic aux
//forum d'origine et de destination
//Pour cela on compte le nombre de post déplacé
$post_number_requete = mysql_query("SELECT COUNT(*)
AS nombre_post
FROM forum_post
WHERE topic_id = '".$topic."'")
or die ("Un problème est survenu lors du déplacement");
$data_post_number = mysql_fetch_assoc($post_number_requete);
$nombrepost = $data_post_number['nombre_post'];
//Il faut également vérifier qu'on a pas déplacé un post qui été
//l'ancien premier post du forum (champ forum_last_post_id)
$requete1 = mysql_query('SELECT post_id
FROM forum_post
WHERE post_forum_id = '.$origine.'
ORDER BY post_id DESC
LIMIT 0,1')
or die ("Un problème est survenu lors du déplacement");
$data1 = mysql_fetch_assoc($requete1);
//Puis on met à jour le forum d'origine
mysql_query("UPDATE forum_forum
SET forum_post = forum_post - '".$nombrepost."',
forum_topic = forum_topic - 1,
forum_last_post_id = '".$data1['post_id']."'
WHERE forum_id = '".$origine."'");
//Avant de mettre à jour le forum de destination il faut
//vérifier la valeur de forum_last_post_id
$requete2 = mysql_query('SELECT post_id
FROM forum_post WHERE post_forum_id = '.$destination.'
ORDER BY post_id DESC
LIMIT 0,1')
or die ("Un problème est survenu lors du déplacement");
$data2 = mysql_fetch_assoc($requete2);
//Et on met à jour enfin !
mysql_query("UPDATE forum_forum
SET forum_post = forum_post + '".$nombrepost."',
forum_topic = forum_topic + 1,
forum_last_post_id = '".$data2['post_id']."'
WHERE forum_id = '".$destination."'")
or die ("Un problème est survenu lors du déplacement");
//C'est gagné ! On affiche le message
echo'<p>Le topic a bien été déplacé <br />
Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a>
pour revenir au topic<br />
Cliquez <a href="./index.php">ici</a>
pour revenir à l index du forum</p>';
}
break;
default;
echo'<p>Cette action est impossible</p>';
} //Fin du Switch
?>
</div>
</body>
</html>
Cordialement
Autres pages sur : resolue php page plante page blanche
Lassé par la pub ? Créez un compte
Merci CrazyCat, grace a toi j'ai retrouver quelques erreurs un peu bête qui était dans le même style, mais maintenant ma page est afficher mais rien, juste un cadre vidre je crois que aucune action se passe...
EDIT : J'ai juste enelever les erreurs et tout fonctionne maintenant (ce que Crazy cat m'avait conseiller d'ajouter)
Par contre mes messages se post mais ne s'affiche pas alors que pourtant quand je suis a la vue des catégorie ca fonctionne mais dès que j'accède au forum je n'ai aucun topic de crée
voirforum.php
voirtopic.php
J'ai beau repassé mes codes au peigne fin j'ai du mal à trouver mes erreurs
EDIT : J'ai juste enelever les erreurs et tout fonctionne maintenant (ce que Crazy cat m'avait conseiller d'ajouter)
Par contre mes messages se post mais ne s'affiche pas alors que pourtant quand je suis a la vue des catégorie ca fonctionne mais dès que j'accède au forum je n'ai aucun topic de crée
voirforum.php
<?php session_start(); $titre="Voir un forum"; include("includes/debut.php"); include("includes/menu.php"); include("includes/identifiants.php"); //On récupère la valeur de f $forum = (int) $_GET['f']; //A partir d'ici, on va compter le nombre de messages //pour n'afficher que les 25 premiers $query=$db->prepare('SELECT forum_name, forum_topic, auth_view, auth_topic FROM forum_forum WHERE forum_id = :forum'); $query->bindValue(':forum',$forum,PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); if (!verif_auth($data['auth_view'])) { erreur(ERR_AUTH_VIEW); } $totalDesMessages = $data['forum_topic'] + 1; $nombreDeMessagesParPage = 25; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./voirforum.php?f='.$forum.'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>'; //Nombre de pages $page = (isset($_GET['page']))?intval($_GET['page']):1; //On affiche les pages 1-2-3, etc. echo '<p>Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i == $page) //On ne met pas de lien sur la page actuelle { echo $i; } else { echo ' <a href="voirforum.php?f='.$forum.'&page='.$i.'">'.$i.'</a>'; } } echo '</p>'; $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage; //Le titre du forum echo '<h1>'.stripslashes(htmlspecialchars($data['forum_name'])).'</h1><br /><br />'; if (verif_auth($data['auth_topic'])) { //Et le bouton pour poster echo'<a href="./poster.php?action=nouveautopic&f='.$forum.'"> <img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>'; } $query->CloseCursor(); //On prend tout ce qu'on a sur les Annonces du forum $query=$db->prepare('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post, Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur, post_id FROM forum_topic LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur WHERE topic_genre = "Annonce" AND forum_topic.forum_id = :forum ORDER BY topic_last_post DESC'); $query->bindValue(':forum',$forum,PDO::PARAM_INT); $query->execute(); //On lance notre tableau seulement s'il y a des requêtes ! if ($query->rowCount()>0) { ?> <table> <tr> <th><img src="./images/annonce.gif" alt="Annonce" /></th> <th class="titre"><strong>Titre</strong></th> <th class="nombremessages"><strong>Réponses</strong></th> <th class="nombrevu"><strong>Vus</strong></th> <th class="auteur"><strong>Auteur</strong></th> <th class="derniermessage"><strong>Dernier message</strong></th> </tr> <?php //On commence la boucle while ($data=$query->fetch()) { //Pour chaque topic : //Si le topic est une annonce on l'affiche en haut //mega echo de bourrain pour tout remplir echo'<tr><td><img src="./images/annonce.gif" alt="Annonce" /></td> <td id="titre"><strong>Annonce : </strong> <strong><a href="./voirtopic.php?t='.$data['topic_id'].'" title="Topic commencé à '.date('H\hi \l\e d M,y',$data['topic_time']).'"> '.stripslashes(htmlspecialchars($data['topic_titre'])).'</a></strong></td> <td class="nombremessages">'.$data['topic_post'].'</td> <td class="nombrevu">'.$data['topic_vu'].'</td> <td><a href="./voirprofil.php?m='.$data['topic_createur'].' &action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo_createur'])).'</a></td>'; //Selection dernier message $nombreDeMessagesParPage = 15; $nbr_post = $data['topic_post'] +1; $page = ceil($nbr_post / $nombreDeMessagesParPage); echo '<td class="derniermessage">Par <a href="./voirprofil.php?m='.$data['post_createur'].' &action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo_last_posteur'])).'</a><br /> A <a href="./voirtopic.php?t='.$data['topic_id'].'&page='.$page.'#p_'.$data['post_id'].'">'.date('H\hi \l\e d M y',$data['post_time']).'</a></td></tr>'; } ?> </table> <?php } $query->CloseCursor(); //On prend tout ce qu'on a sur les topics normaux du forum $query=$db->prepare('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post, Mb.membre_pseudo AS membre_pseudo_createur, post_id, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur WHERE topic_genre <> "Annonce" AND forum_topic.forum_id = :forum ORDER BY topic_last_post DESC LIMIT :premier ,:nombre'); $query->bindValue(':forum',$forum,PDO::PARAM_INT); $query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT); $query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT); $query->execute(); echo'test'; if ($query->rowCount()>0) { ?> <table> <tr> <th><img src="./images/message.gif" alt="Message" /></th> <th class="titre"><strong>Titre</strong></th> <th class="nombremessages"><strong>Réponses</strong></th> <th class="nombrevu"><strong>Vus</strong></th> <th class="auteur"><strong>Auteur</strong></th> <th class="derniermessage"><strong>Dernier message </strong></th> </tr> <?php //On lance la boucle while ($data = $query->fetch()) { //Ah bah tiens... re vla l'echo de fou echo'<tr><td><img src="./images/message.gif" alt="Message" /></td> <td class="titre"> <strong><a href="./voirtopic.php?t='.$data['topic_id'].'" title="Topic commencé à '.date('H\hi \l\e d M,y',$data['topic_time']).'"> '.stripslashes(htmlspecialchars($data['topic_titre'])).'</a></strong></td> <td class="nombremessages">'.$data['topic_post'].'</td> <td class="nombrevu">'.$data['topic_vu'].'</td> <td><a href="./voirprofil.php?m='.$data['topic_createur'].' &action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo_createur'])).'</a></td>'; //Selection dernier message $nombreDeMessagesParPage = 15; $nbr_post = $data['topic_post'] +1; $page = ceil($nbr_post / $nombreDeMessagesParPage); echo '<td class="derniermessage">Par <a href="./voirprofil.php?m='.$data['post_createur'].' &action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo_last_posteur'])).'</a><br /> A <a href="./voirtopic.php?t='.$data['topic_id'].'&page='.$page.'#p_'.$data['post_id'].'">'.date('H\hi \l\e d M y',$data['post_time']).'</a></td></tr>'; } ?> </table> <?php } else //S'il n'y a pas de message { echo'<p>Ce forum ne contient aucun sujet actuellement</p>'; } $query->CloseCursor(); ?> </div> </body></html>
voirtopic.php
<?php session_start(); $titre="Voir un sujet"; include("includes/debut.php"); include("includes/menu.php"); include("includes/identifiants.php"); include("includes/bbcode.php"); //On verra plus tard ce qu'est ce fichier //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 $query=$db->prepare('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'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); if (!verif_auth($data['auth_view'])) { erreur(ERR_AUTH_VIEW); } $totalDesMessages = $data['topic_post'] + 1; $nombreDeMessagesParPage = 15; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a> --> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>'; echo '<h1>'.stripslashes(htmlspecialchars($data['topic_titre'])).'</h1><br /><br />'; //Nombre de pages $page = (isset($_GET['page']))?intval($_GET['page']):1; //On affiche les pages 1-2-3 etc... echo '<p>Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i == $page) //On affiche pas la page actuelle en lien { echo $i; } else { echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'"> ' . $i . '</a> '; } } echo'</p>'; $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage; if (verif_auth(INSCRIT)) { //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(INSCRIT)) { //On affiche l'image nouveau topic echo'<a href="./poster.php?action=nouveautopic&f='.$data['forum_id'].'"> <img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>'; } $query->CloseCursor(); //Enfin on commence la boucle ! $query=$db->prepare('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 :premier, :nombre'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT); $query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT); $query->execute(); //On vérifie que la requête a bien retourné des messages if ($query->rowCount()<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 ($data = $query->fetch()) { //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='.$data['membre_id'].'&action=consulter"> '.stripslashes(htmlspecialchars($data['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 ($id == $data['post_createur']) { echo'<td id=p_'.$data['post_id'].'>Posté à '.date('H\hi \l\e d M y',$data['post_time']).' <a href="./poster.php?p='.$data['post_id'].'&action=delete"> <img src="./images/supprimer.gif" alt="Supprimer" title="Supprimer ce message" /></a> <a href="./poster.php?p='.$data['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',$data['post_time']).' </td></tr>'; } //Détails sur le membre qui a posté echo'<tr><td> <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'])).'</td>'; //Message echo'<td>'.code(nl2br(stripslashes(htmlspecialchars($data['post_texte'])))).' <br /><hr />'.code(nl2br(stripslashes(htmlspecialchars($data['membre_signature'])))).'</td></tr>'; } //Fin de la boucle ! \o/ $query->CloseCursor(); ?> </table> <?php echo '<p>Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i == $page) //On affiche pas la page actuelle en lien { echo $i; } else { echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'"> ' . $i . '</a> '; } } echo'</p>'; //On ajoute 1 au nombre de visites de ce topic $query=$db->prepare('UPDATE forum_topic SET topic_vu = topic_vu + 1 WHERE topic_id = :topic'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->execute(); $query->CloseCursor(); } //Fin du if qui vérifiait si le topic contenait au moins un message $requete3 = mysql_query('SELECT topic_locked FROM forum_topic WHERE topic_id = '.$topic); $data3 = mysql_fetch_assoc($requete3); if ($data3['topic_locked'] == 1) // Topic verrouillé ! { echo'<a href="./postok.php?action=unlock&t='.$amp;topic.'"> <img src="./images/unlock.gif" alt="deverrouiller" title="Déverrouiller ce sujet" /></a>'; } else //Sinon le topic est déverrouillé ! { echo'<a href="./postok.php?action=lock&t='.$topic.'"> <img src="./images/lock.gif" alt="verrouiller" title="Verrouiller ce sujet" /></a>'; } $requete = mysql_query('SELECT forum_id, forum_name FROM forum_forum WHERE forum_id <> '.$data1['forum_id'].''); //Data 1 a été définie tout en haut de la page ! echo'<p>Déplacer vers :</p> <form method="post" action=postok.php?action=deplacer&t='.$topic.'> <select name="dest">'; while($data = mysql_fetch_assoc($requete)) { echo'<option value='.$data['forum_id'].' id='.$data['forum_id'].'>'.$data['forum_name'].'</option>'; } echo' </select> <input type="hidden" name="from" value='.$data1['forum_id'].'> <input type="submit" name="submit" value="Envoyer" /> </form>'; ?> </div> </body> </html>
J'ai beau repassé mes codes au peigne fin j'ai du mal à trouver mes erreurs
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumPhp javascript pb site perso page blanche
- ForumPage blanche installation php
- ForumPage blanche lien
- ForumProbleme html php page blanche
- ForumPage blanche php
- ForumPage blanche php include switch get
- ForumPage blanche imprimante
- ForumHtml2pdf page blanche,php
- ForumDemarrer ie page blanche
- solutionsPhp page blanche help
- Voir plus