Impossible d'écrire sur ma BDD

Résolu
MHH225 Messages postés 560 Statut Membre -  
MHH225 Messages postés 560 Statut Membre -
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. MHH225 Messages postés 560 Statut Membre 46
     
    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
  2. MHH225 Messages postés 560 Statut Membre 46
     
    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. MHH225 Messages postés 560 Statut Membre 46
       
      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
  3. Stef60 Messages postés 257 Statut Membre 41
     
    Bonsoir,
    tu ne reçois pas de message d'erreur?
    0
    1. MHH225 Messages postés 560 Statut Membre 46
       
      Non aucun et c'est ca que je trouve bizarre. Je ne comprends vraiment pas...
      0
  4. Stef60 Messages postés 257 Statut Membre 41
     
    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. MHH225 Messages postés 560 Statut Membre 46
       
      euh... je le mets où :-( ? Je connais juste tout le blabla autour des variables en php (déclaration, écriture,..)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Stef60 Messages postés 257 Statut Membre 41
     
    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. MHH225 Messages postés 560 Statut Membre 46
       
      Ben ca me fait toujours rien... !!!
      0
      1. MHH225 Messages postés 560 Statut Membre 46 > MHH225 Messages postés 560 Statut Membre
         
        Et faut que je mette ca sur toute les requêtes ? ca plante quand je fais ca.
        0
  7. MHH225 Messages postés 560 Statut Membre 46
     
    En fait ca ne m'écrit jamais rien !
    0
    1. MHH225 Messages postés 560 Statut Membre 46
       
      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