Résolu système de messages.

  • Auteur de la discussion Auteur de la discussion jean8
  • Créé le Créé le
Statut
N'est pas ouverte pour d'autres réponses.

jean8

Membre
Inscription
11 Janvier 2015
Messages
14
Réactions
0
Points
44
RGCoins
0
Bonjours, j'ai fais un système de messages mais sa n’envoie pas les message dans la BDD... Voici mes codes:

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 ?
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut