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

Résolu/Fermé
oursafamer Messages postés 2 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 22 février 2011 - 22 févr. 2011 à 09:41
oursafamer Messages postés 2 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 22 février 2011 - 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)



A voir également:

1 réponse

oursafamer Messages postés 2 Date d'inscription mardi 22 février 2011 Statut Membre Dernière intervention 22 février 2011
22 févr. 2011 à 12:48
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.
0