Bonjours, j'ai fais un système de messages mais sa n’envoie pas les message dans la BDD... Voici mes codes:
Ma BBD :
index.php:
liste_news.php:
rediger_news.php:
quelqu'un peut m'aider svp ?
Ma BBD :
Code:
CREATE TABLE IF NOT EXISTS `news` (
`id_news` int(11) NOT NULL AUTO_INCREMENT,
`titre` varchar(255) NOT NULL,
`contenu` text NOT NULL,
`timestamp` bigint(20) NOT NULL,
PRIMARY KEY (`id_news`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
index.php:
PHP:
<?php
$bdd = new PDO('mysql:host=localhost;dbname=news', 'root', '');
?>
<!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>Bienvenue sur mon site</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
h1, h3
{
text-align:center;
}
h3
{
background-color:black;
color:white;
font-size:0.9em;
margin-bottom:0px;
}
.news p
{
background-color:#CCCCCC;
margin-top:0px;
}
.news
{
width:70%;
margin:auto;
}
</style>
</head>
<body>
<h1>Bienvenue sur mon site !</h1>
<p>Voici les dernières news :</p>
<?php
$bdd = new PDO('mysql:host=localhost;dbname=news', 'root', '');
// On récupère les cinq dernières news.
$reponse = $bdd->query('SELECT * FROM news');
while ($donnees = $reponse->fetch())
{
?>
<div class="news">
<h3>
<?php echo $donnees['titre']; ?>
<em>le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
</h3>
<p>
<?php
// On enlève les éventuels antislashs, PUIS on crée les entrées en HTML (<br />).
$contenu = nl2br(stripslashes($donnees['contenu']));
echo $contenu;
?>
</p>
</div>
<?php
} // Fin de la boucle des <italique>news</italique>.
?>
</body>
</html>
liste_news.php:
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="rediger_news.php">Ajouter une news</a></h2>
<?php
$bdd = new PDO('mysql:host=localhost;dbname=news', 'root', '');
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
// On vérifie si c'est une modification de news ou non.
if ($_POST['id_news'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table.
$req=$bdd->prepare('INSERT INTO (titre, contenu) VALUES(?,?)');
$req->execute(array($_POST['titre'], $_POST['contenu']));
}
else
{
// On protège la variable "id_news" pour éviter une faille SQL.
$id_news = addslashes($_POST['id_news']);
// C'est une modification, on met juste à jour le titre et le contenu.
$requete = $bdd->prepare("UPDATE news SET titre= ? , contenu= ? WHERE id=? ");
$requete->execute(array($titre, $contenu, $id_news));
}
}
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si l'on demande de supprimer une news.
{
// Alors on supprime la news correspondante.
// On protège la variable « id_news » pour éviter une faille SQL.
$supprimer_news = addslashes($_GET['supprimer_news']);
$req=$bdd->query('DELETE FROM news WHERE id=' . $_GET['supprimer_news'] . '');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$reponse = $bdd->query('SELECT * FROM news');
while ($donnees = $reponse->fetch()) // On fait une boucle pour lister les news.
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></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>
rediger_news.php:
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="liste_news.php">Retour à la liste des news</a></h3>
<?php
$bdd = new PDO('mysql:host=localhost;dbname=news', 'root', '');
if (isset($_GET['modifier_news'])) // Si on demande de modifier une news.
{
// On protège la variable « modifier_news » pour éviter une faille SQL.
$modifier_news = htmlspecialchars($_GET['modifier_news']);
// On récupère les informations de la news correspondante.
$reponse = $bdd->query ('SELECT * FROM news WHERE id=' . $_GET['modifier_news'] .'');
while ($donnees = $retour->fetch()) {
// On place le titre et le contenu dans des variables simples.
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($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.
$titre = '';
$contenu = '';
$id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification.
}
?>
<form action="liste_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>
quelqu'un peut m'aider svp ?