Impossible d'écrire sur ma BDD

Résolu
Salut,

J'ai crée un site avec des pages d'administrations pour gérer le contenu des pages du-dit site, mais j'ai un problème d'écriture sur ma BDD. En effet, j'avais jusqu'à présent quelques pages d'administrations qui marchaient à merveilles, mais hier j'en ai fait 4 / 5 autres en copiant/collant les codes des autres pages, en changeant bien évidemment les noms des BDD (que j'ai crées par la même occasion ;-) ), mais impossible d'écrire sur les BDD à partir de ces nouvelles pages d'admin. J'ai pourtant refait les pages, rererererevérifié mon code trois bonnes douzaines de fois (ou presque :p),... mais rien y fait. Et il n'y a aucun message d'erreur. Je poste mon code sous peu. En attendant vos réponse, merci à ceux qui pourront m'aider.

--
Merci d'avance pour vos réponses !
;-)
Configuration: Windows Vista
Firefox 3.0.4

6 réponses

  1. Voici le code de la page qui ne marche pas (les autres sont presques pareilles à l'exception des noms):

    <div id="corps">

    <h2>Liste des news</h2>

    <h3><a href="pedagogie.php#ajouter_news">Ajouter une news</a></h3>
    <h3><a href="../connexion.php">Retour à l'administration</a></h3>
    <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
    <?php
    mysql_connect("localhost","********", "********");
    mysql_select_db("pio");
    //-----------------------------------------------------
    // 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 pas
    if ($_POST['id_news'] == 0)
    {
    // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
    mysql_query("INSERT INTO pedagogie VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')");
    }
    else
    {
    // On protège la variable "id_news" pour éviter une faille SQL
    $_POST['id_news'] = addslashes($_POST['id_news']);
    // C'est une modification, on met juste à jour le titre et le contenu
    mysql_query("UPDATE pedagogie SET titre='" . $titre . "', date='". $date ."', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
    }
    }

    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_news'])) // Si 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']);
    mysql_query('DELETE FROM pedagogie WHERE id=\'' . $_GET['supprimer_news'] . '\'');
    }
    ?>
    <table><tr>
    <th class="petit">Modifier</th>
    <th class="petit">Supprimer</th>
    <th>Titre</th>
    <th>Date</th>
    <th>Date d'ajout</th>
    </tr>
    <?php
    $retour = mysql_query('SELECT * FROM pedagogie ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>
    <tr>
    <td class="petit"><?php echo '<a href="pedagogie.php?modifier_news=' . $donnees['id'] . '#ajouter_news">'; ?>Modifier</a></td>
    <td class="petit"><?php echo '<a href="pedagogie.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo stripslashes($donnees['date']); ?></td>
    <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les news
    ?>
    </table>
    <p><br/><br/></p>
    <hr/>
    <p><br/><br/></p>

    <!----------------------------------------------------
    Edition des news
    ----------------------------------------------------->

    <h2 id="ajouter_news">Edition des infos</h2>

    <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
    <h3><a href="pedagogie.php">Annuler</a></h3>

    <?php
    mysql_connect("localhost","********", "********");
    mysql_select_db("pio");
    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'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    // On récupère les infos de la news correspondante

    $donnees = mysql_fetch_array($retour);

    // On place le titre et le contenu dans des variables simples
    $titre = stripslashes($donnees['titre']);
    $date = stripslashes($donnees['date']);
    $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="pedagogie.php" method="post">
    <p>Lieu : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
    <p>Date : <input type="text" size="30" name="date" value="<?php echo $date; ?>" /></p>
    <p>
    Pionniers présents :<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>

    </div>

    0
    1. Et celui de celle qui marche :

      <div id="corps">

      <h2>Liste des news</h2>

      <h3><a href="noel.php#ajouter_news">Ajouter une news</a></h3>
      <h3><a href="../connexion.php">Retour à l'administration</a></h3>
      <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
      <?php
      mysql_connect("localhost","********", "********");
      mysql_select_db("pio");
      //-----------------------------------------------------
      // 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 pas
      if ($_POST['id_news'] == 0)
      {
      // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
      mysql_query("INSERT INTO noel VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')");
      }
      else
      {
      // On protège la variable "id_news" pour éviter une faille SQL
      $_POST['id_news'] = addslashes($_POST['id_news']);
      // C'est une modification, on met juste à jour le titre et le contenu
      mysql_query("UPDATE noel SET titre='" . $titre . "', date='". $date ."', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
      }
      }

      //--------------------------------------------------------
      // Vérification 2 : est-ce qu'on veut supprimer une news ?
      //--------------------------------------------------------
      if (isset($_GET['supprimer_news'])) // Si 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']);
      mysql_query('DELETE FROM noel WHERE id=\'' . $_GET['supprimer_news'] . '\'');
      }
      ?>
      <table><tr>
      <th class="petit">Modifier</th>
      <th class="petit">Supprimer</th>
      <th>Titre</th>
      <th>Date</th>
      <th>Date d'ajout</th>
      </tr>
      <?php
      $retour = mysql_query('SELECT * FROM noel ORDER BY id DESC');
      while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
      {
      ?>
      <tr>
      <td class="petit"><?php echo '<a href="noel.php?modifier_news=' . $donnees['id'] . '#ajouter_news">'; ?>Modifier</a></td>
      <td class="petit"><?php echo '<a href="noel.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
      <td><?php echo stripslashes($donnees['titre']); ?></td>
      <td><?php echo stripslashes($donnees['date']); ?></td>
      <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
      </tr>
      <?php
      } // Fin de la boucle qui liste les news
      ?>
      </table>
      <p><br/><br/></p>
      <hr/>
      <p><br/><br/></p>

      <!----------------------------------------------------
      Edition des news
      ----------------------------------------------------->

      <h2 id="ajouter_news">Edition des infos</h2>

      <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
      <h3><a href="noel.php">Annuler</a></h3>

      <?php
      mysql_connect("localhost","********", "********");
      mysql_select_db("pio");
      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'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
      // On récupère les infos de la news correspondante

      $donnees = mysql_fetch_array($retour);

      // On place le titre et le contenu dans des variables simples
      $titre = stripslashes($donnees['titre']);
      $date = stripslashes($donnees['date']);
      $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="noel.php" method="post">
      <p>Lieu : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
      <p>Date : <input type="text" size="30" name="date" value="<?php echo $date; ?>" /></p>
      <p>
      Pionniers présents :<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>

      </div>

      0
      1. Petite note : je ne connais quasiment pas le PHP. J'ai donc piqué le code sur http://www.siteduzero.com/tutoriel-3-14557-tp-des-news-sur-votre-site.html#ss_part_1
        0
    2. Bonsoir,
      tu ne reçois pas de message d'erreur?
      0
      1. Non aucun et c'est ca que je trouve bizarre. Je ne comprends vraiment pas...
        0
    3. Gères les erreurs de tes requêtes.
      Voici un exemple:

      $query = "INSERT INTO ....";

      $result = mysql_query($query);
      if (!$result) {
      $message = 'Requête invalide : ' . mysql_error() . "\n";
      $message .= 'Requête complète : ' . $query;
      die($message);
      }
      0
      1. euh... je le mets où :-( ? Je connais juste tout le blabla autour des variables en php (déclaration, écriture,..)
        0
    4. a la place de ca :
      mysql_query("INSERT INTO pedagogie VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')");

      tu peux faire comme ca :
      $query = "INSERT INTO pedagogie VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')";

      $result = mysql_query($query);
      if (!$result) {
      $message = 'Requête invalide : ' . mysql_error() . "\n";
      $message .= 'Requête complète : ' . $query;
      die($message);
      }

      -------------------------------------------
      Tu fais la même chose avec toutes tes requêtes.
      C'est un peu plus long mais cela te permettra de repérer d'éventuelles erreurs.
      0
      1. Ben ca me fait toujours rien... !!!
        0
      2. @MHH225Et faut que je mette ca sur toute les requêtes ? ca plante quand je fais ca.
        0
    5. En fait ca ne m'écrit jamais rien !
      0
      1. Trouvé !
        En fait j'avais recopier le INSERT INTO avec les même champs alors que j'en avais supprimer dans la BDD... forcement y'a un bug !
        0