Se connecter avec
S'enregistrer | Connectez-vous

Système de News, rien ne s'affiche, aucune erreur signalée..

Dernière réponse : dans Programmation

Bonjour à tous,

je fais appel à vous, car j'ai décidé d'établir un système de News sur mon site, et je me retrouve face à un soucis, dont je n'arrive pas à régler, même après vérification de tout mon code.

Voici la page :
Cliquez ici

En fait, après vérifications et re-vérifications du code, j'obtiens toujours la même chose, à savoir, rien... Même pas une erreur PHP, rien n'est signalé.

Pour ce système de news, je possède 3 pages : index.php, liste_news.php, et rediger_news.php + une table de 5 champs ( ID, auteur, titre, contenu, timestamp ).

Voici les codes des 3 pages...

index.php<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Pandemonium v2 :: Réalisé par PIGNON THOMAS ::.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="global_v2.css" />
</head>

<body>
<div id="en_tete">
<!-- Ici on mettra la bannière -->
</div>

<div id="menu">
<div class="element_menu">
<a href="#">News</a>  <img src="images/puce.jpg"> 
<a href="#">Membres</a>  <img src="images/puce.jpg"> 
<a href="#">Biographie</a>  <img src="images/puce.jpg"> 
<a href="#">Concerts</a>  <img src="images/puce.jpg"> 
<a href="#">Photos</a>  <img src="images/puce.jpg"> 
<a href="#">Livre d'or</a>  <img src="images/puce.jpg"> 
<a href="#">Contacts</a>  <img src="images/puce.jpg"> 
<a href="#">Liens</a>  <img src="images/puce.jpg"> 
<a href="#">Admin</a>
</div>
</div>


<div id="corps">
<?
mysql_connect("localhost", "pseudo", "pass");
mysql_select_db("base_de_donnee");

// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM pandemonium_news ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="titre_contenu">Les news</div>


<table width="95%" cellspacing="0" cellpadding="0" align="center">
<tr>
<td class="news_titre"><?php echo $donnees['titre']; ?></td>
</tr>
<tr>
<td class="news_message">
<?php
// On enlève les éventuels antislash PUIS on crée les entrées en HTML (
)
$contenu = nl2br(stripslashes($donnees['contenu']));
echo $contenu;
?>
</td>
</tr>
<tr>
<td class="news_auteur"><?php echo $donnees['auteur']; ?>, <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></td>
</tr>

</table>
</div>
<?php
} // Fin de la boucle des news
?>

<div id="pied_de_page">

</div>

<div id="copyright">

<b>Copyright 2006</b> - http://pandemonium.serix.be :: Site réalisé par <b>Thomas PIGNON</b>
</div>
</body>
</html> [/code]

liste_news.php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Liste des news</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
h2, th, td
{
text-align:center;
}
table
{
border-collapse:collapse;
border:2px solid black;
margin:auto;
}
th, td
{
border:1px solid black;
}
</style>
</head>

<body>


<h2><a href="../admin/rediger_news.php">Ajouter une news</a></h2>

<?php
mysql_connect("localhost", "pseudo", "pass");
mysql_select_db("base_de_donnee");

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------

if (isset($_POST['auteur']) AND isset($_POST['titre']) AND isset($_POST['contenu']))
{
$auteur = addslashes($_POST['auteur']);
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO pandemonium_news VALUES('', '" . $auteur . "', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
}
else
{
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE pandemonium_news SET auteur='" . $auteur . "', titre='" . $titre . "', contenu='" . $contenu . "' WHERE id=" . $_POST['id_news']);
}
}


//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------

if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
mysql_query('DELETE FROM pandemonium_news WHERE id=' . $_GET['supprimer_news']);
}
?>

<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>

<?php
$retour = mysql_query('SELECT * FROM pandemo_v2_news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>

<tr>
<td><?php echo '<a href="../admin/rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="../admin/liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['auteur']); ?></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>

<?php
} // Fin de la boucle qui liste les news
?>
</table>

</body>
</html>[/code]

rediger_news.php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Rédiger une news</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
h3, form
{
text-align:center;
}
</style>
</head>

<body>

<h3><a href="../admin/liste_news.php">Retour à la liste des news</a></h3>

<?php
mysql_connect("localhost", "pseudo", "pass");
mysql_select_db("base_de_donnee");

if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
{
// On récupère les infos de la correspondante
$retour = mysql_query('SELECT * FROM pandemonium_news WHERE id=' . $_GET['modifier_news']);
$donnees = mysql_fetch_array($retour);

// On place le titre et le contenu dans des variables simples
$titre = $donnees['auteur'];
$titre = $donnees['titre'];
$contenu = $donnees['contenu'];
$id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle news
{
// Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
$auteur = '';
$titre = '';
$contenu = '';
$id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>

<form action="../admin/liste_news.php" method="post">
<p>Auteur : <input type="text" size="30" name="titre" value="<?php echo $auteur; ?>" /></p>

<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>

<p>
Contenu :

<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea>


<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>

</body>
</html>[/code]

Lorsque j'ajoute une news, elle n'est pas stockée dans la base... Mais je ne vois pas où est l'erreur...
Lassé par la pub ? Créez un compte
Expert Programmation

si tu n'arrives pas à insérer une news dans la base de données, à la place de cette ligne (dans liste_news) :
  1. mysql_query("INSERT INTO pandemonium_news VALUES('', '" . $auteur . "', '" . $titre . "', '" . $contenu . "', '" . time() . "')");


met ceci :

  1. mysql_query("INSERT INTO pandemonium_news VALUES('', '" . $auteur . "', '" . $titre . "', '" . $contenu . "', '" . time() . "')") or die ('Erreur dans l\'insertion : '.mysql_error());


(j'espère pas avoir fait de fautes...)

Salut,

Je suis débutant en php mais je pense qu'il manque la fermuture de la connection à mysql...

Essaie de rajouter
  1. mysql_close();
dans ta page index après "// Fin de la boucle des news"

EDIT: d'ailleurs il faudrait le rajouter à chaque page vue que tu connectes à ta BDD dans les 3 pages...
La deuxième page faut le placer au même endroit apres "fin de la boucle des news" par contre le dernier fichier faut que tu le rajoutes à la fin après le formulaire...

pas besoin de se déconnecter ! c'est juste plus propre si tu le fais , mais ce n'est pas sa qui te fait foiré ton script....


mysql_connect("localhost", "pseudo", "pass");
mysql_select_db("base_de_donnee");

J'espere pour toi que ce sont les vrai données de ta base, ou alors que tu as mis sa juste pour ne pas mettre les vrais paramètres de ta base pour le poster sur ce forum...

Citation :
pas besoin de se déconnecter ! c'est juste plus propre si tu le fais , mais ce n'est pas sa qui te fait foiré ton script....


Héhé évidemment :)  Je n'allais pas vous livrer mes données :D 

Non, je vous rassure, j'ai quand même bien remplacé ces valeurs par les vraies :) 

Non ! J'ai ma table pandemonium_news, avec mes champs, mais lorsque je valide le formulaire de news, rien n'est stocké dans ma base de donnée...

Je viens de retester là, et je viens de me rendre compte que c'était AUTEUR qui faisait tout foirer...

Je l'ai supprimé, cependant si quelqu'un trouve l'erreur avec AUTEUR, merci de m'en faire part...

Merci de votre aide les infos-net :) 

Je sais pas si je dis une betise mais au lieu de :
  1. mysql_query("INSERT INTO pandemonium_news VALUES('', '" . $auteur . "', '" . $titre . "', '" . $contenu . "', '" . time() . "')");


Tu peu mettre sa :

  1. mysql_query("INSERT INTO pandemonium_news VALUES('', '$auteur', ' $titre', ' $contenu', '" . time() . "')");

Pour time je sais pas je connei pas mais peut etre faire une variable $time et l'inserrer

Un conseil pour éviter de nombreuses erreurs :

fait tes requetes de cette façon :

insert into ma_table(mon_super_champs , champs_deux , champs_trois ) values( 'val_chps_un' , 'val_chps_2' , 'val_chps_trois') ;


comme cela tu sais ou tu mets tes données ;-)
et tu n'as pas à t'occuper de l'id ( si tu l'as mis en auto-increment et si tu en as mis un)
Lassé par la pub ? Créez un compte
Tom's guide dans le monde