La page de listage :
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Liste news</title>
<style type="text/css">
th, td, table {
border: 1px solid black; }
a {
text-decoration:underline;
color:black;
}
a:hover{
color:blue;
}
</style>
</head>
<body>
<center><h1><a href="rediger_news.php"> Ajouter une news </a></h1><hr/><br/><hr/><br/>
<?php
try {
$cnx = new PDO('');
$cnx-> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
echo '<code>'.$e->getMessage().'<br />'.$e->getTraceAsString(),'</code>';
}/*
if (isset($_POST['titre']) AND isset($_POST['contenu'])) {
$titre = addslashes($_POST(['titre']);
$contenu = addslashes($_POST(['contenu']);
$q= array(
'titre'=>$titre,
'contenu'=>$contenu,
'timestamp'=>time()
);
// modif ou non ???
if ($_POST['id_news'] == 0) {
// ce n est pas une modif
$req = $cnx->prepare('INSERT INTO news (titre, contenu, timestamp) VALUES (:titre, :contenu, :timestamp) WHERE id='" . $_POST['id_news'] . "'');
$req->execute($q);
}
//c'est une modif
else{
$_POST['id_news'] = addslashes($_POST['id_news']);
$sql= 'UPDATE news SET titre="$titre",contenu="$contenu", timestamp="time()" WHERE id='" . $_POST['id_news'] . " ' ';
$req2 = $cnx->prepare($sql);
$req2->execute();
}
}*/
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.
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
$req3 = $cnx->prepare('DELETE FROM news WHERE id=\'' .$_GET['supprimer_news'] . '\'');
$req3->execute();
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Contenu</th>
<th>Date</th>
Liste des news du site !
</tr>
<?php
$req4 = $cnx->query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = $req4->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 stripslashes($donnees['contenu']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news.
?>
</table>
</center>
</body>
</html>
Ici la partie d'affichage fonctionne mais la vérification de modification et la modification ne fonctionnent pas (la partie en commentaire)Et cette page est la page où l'on peut modifier ou ajouter les news(tout depend de la valeur de id_news envoyer par la page de listage). Le code également en commentaire et la source des erreurs :
<!DOCTYPE html PUBLIC>
<html>
<head>
<title>Rédiger une news</title>
<meta charset="utf-8">
<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
try {
$cnx = new PDO('');
$cnx-> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
echo '<code>'.$e->getMessage().'<br />'.$e->getTraceAsString(),'</code>';
}/*
if (isset($_GET['modifier_news'])) { // Si on demande de modifier une news.
// On protège la variable « modifier_news » pour éviter une faille SQL.
$_GET['modifier_news'] = htmlspecialchars($_GET['modifier_news']));
// On récupère les informations de la news correspondante.
$sql = $cnx->query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
while($donnees = $sql->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 cest 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>
Voila les pages en questions, je demande donc votre aide pour résoudre mon problème et me sortir de ma détresse. Merci d'avance et bonne journée