Les Allergies
Alimentaires
Posez votre question Signaler

Problème avec un système de news en php [Résolu]

oursafamer 2Messages postés 22 février 2011Date d'inscription 22 février 2011Dernière intervention - Dernière réponse le 22 févr. 2011 à 12:48
Bonjour, j'ai un souci sur mon système de news, impossible d'ajouter ou de modifier une news, pas d'inscription dans la base de donnée.
on a 3 pages: index.php récupère les 5 dernières news et les affiches
<!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
        mysql_connect("localhost", "root", "");
        mysql_select_db("news");
        
        //ON récupère les 5 dernières news
        $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
        while ($donnees = mysql_fetch_array($retour))
        {
          ?>
          <div class="news">
            <h3>
                <?php echo $donnees['titre']; ?>
                <em><?php echo date('d/m/Y à h\hi'); ?></em>
           </h3>
            
            <p>
                <?php
                    $contenu = nl2br(stripslashes($donnees['contenu']));
                    echo $contenu
                ?>
            </p>    
         </div>
                 
        <?php        
        }
        ?>
        
        
    </body>
</html>

ensuite on a 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="rediger_news.php">Ajouter une news</a></h2>
      
      <?php
      mysql_connect("localhost", "root", "");
      mysql_select_db("news");
      
      //verif 1 : veut-on poster une news?
      if(isset($_POST['titre']) AND isset($_POST['contenu']))
      {
         $titre = addslashes($_POST['titre']);
         $contenu = addslashes($_POST['contenu']);
      
      //verif si c'est une modif de news ou pas
       if($_POST['id_news'] == 0)
         {
            mysql_query("INSERT INTO news VALUES ('', '" . $titre ."', '" . $contenu . "', '" . time() . "')");
         }
         else
         {
            //Protection faille sql
            $_POST['$id_news'] = addslashes($_POST['id_news']);
            mysql_query("UPDATE news SET titre='" . $titre . "', contenu = '". $contenu . "', where id = '". $_POST['id_news'] . "'");
         }
      }
      
      //Verif 2 : veut-on supprimer une news?
      if(isset($_GET['supprimer_news']))
      {
         $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
         mysql_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
         $retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
         while($donnees = mysql_fetch_array($retour))
         {
            ?>
            <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'); ?></td>
            </tr>
         <?php
         }
         ?>
      </table>
      
    </body>
</html>


et pour finir 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>
  
        <h3><a href="liste_news.php"> Retour vers la liste des news</a></h3>
        
        <?php
        mysql_connect("localhost", "root", "");
        mysql_select_db("news");
        
        //si on veut modifier une news
        if(isset($_GET['modifier_news']))
        {
            $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
            
            //Récupération info news correpondante
            $retour = mysql_query("SELECT * FROM news WHERE id='". $_GET['modifier_news'] . "'");
            $donnees = mysql_fetch_array($retour);
            
            //on place titre  et contenu dans une variable simple, $id_news sert à se souvenir que c'est une modif
            $titre = stripslashes($donnees['titre']);
            $contenu = stripslashes($donnees['contenu']);
            $id_news = $donnees['id'];
        }
        else // Alors c'est une création de news
        {
            $titre = "";
            $contenu = "";
            $id_news = 0;
        }
        
        ?>
        
        <form action="liste_news.php" method="post">
            <p> Titre : <input type="text" name="titre" value="<?php echo $titre; ?>" /></p>
            <p>
                Contenu :<br />
                <textarea name="contenu" >
                    <?php echo $contenu; ?>
                </textarea>
                <br />
                
                <input type="hidden" name="id_news" value= "<?php echo $id_news; ?>" />
                <input type="submit" value= "ok" />
                
            </p>
        </form>
        
    </body>
</html>

voilà, merci d'avance pour votre aide car la je suis bloqué(je dors plus)
Lire la suite 

Problème avec un système de news en php »

1 réponses
Réponse
+0
moins plus
j'ai trouvé le problème, en voulant testé la suppression de news, je crois que j'ai effacé l 'id no1 et je pense que ça a posé problème.
j'ai donc recréée une table et mon système fonctionne.
Ajouter un commentaire
Ce document intitulé « problème avec un système de news en php » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?