Partage
  • Partager sur Facebook
  • Partager sur Twitter

bug de script

    3 août 2006 à 22:07:25

    Bonjour à tous :)
    en ce moment je suis entrain de créer un petit CMS et j'ai quelques difficultés.
    Si vous pouvez m'aidez sa m'avancerez un peu.

    Dans la partie admin de mon cms j'ai réalisé un script pour ajouter/modifier ou supprimer des grades(ou rangs).
    Mais voici mon problème, je peux ajouter, supprimer des grade mais quand je veux les modifier rien n'est pris en compte.
    J'ai relus mon code à plusieurs reprise mais je n'ai pas trouvé l'erreur.

    Voici mon code :
    grade.php
    <?php
    if (is_file('./conf.php3')) $baseDir = './' ;
    elseif (is_file('../conf.php3')) $baseDir = '../' ;
    elseif (is_file('../../conf.php3')) $baseDir = '../../' ;
    else $baseDir = '/' ;

    $rep=opendir($baseDir.'modules');
    while ($file = readdir($rep)){
        if(substr($file, strlen($file)-4) == '.php')
           require($baseDir.'modules/'.$file) ;
    }

    closedir($rep);

    require("$baseDir/conf.php3"); //On insert le fichier qui contient les informations
    session_start(); //On demarre une session parce que j'ai envi ^^



    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
            die('Vous n\'êtes pas autorisez à acceder à cette page.'); //Si non, on arrete le script et on affiche un message
    }
    mysql_connect($sql_serveur,$sql_login,$sql_pass) or die ("Erreur lors de la connection au serveur MySQL !");


    mysql_select_db($sql_bdd) or die("Impossible de selectionner la base de données\n<br>\nVoici l'
    erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error());
           
    //On se connecte à MySQL

    /////////////////////////////////////////
    //--! REQUETES POUR LES PERMISSIONS !--//
    /////////////////////////////////////////
    $pseudo_membre = $_SESSION['pseudo'];
    $requete = mysql_query("
    SELECT * FROM pdf_membre WHERE `pseudo`='$pseudo_membre'");
    $result = mysql_fetch_array ($requete);

    $grade_utilisateur = $result['grade'];

    //On vérifie si le grade correspond a un qui est stocké dans la table

    $reponse2 = mysql_query("
    SELECT * FROM grades WHERE `titre`='$grade_utilisateur'");
    $result2 = mysql_fetch_array ($reponse2);

    $grade_grade = $result2['grade_grade'];
    /////////////////////////////////////////////
    //--! FIN REQUETES POUR LES PERMISSIONS !--//
    /////////////////////////////////////////////
    if ($grade_grade == 'oui') {

     ?>
    <h3><a href="
    index.php?page=espace_membre">Retour à mes options</a></h3>
    <h3><a href="
    index.php?page=admin_grade_creer">Ajouter un grade</a></h3>

    <?
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut créer un grade ?
    //-----------------------------------------------------

    if (isset($_POST['titre']) AND isset($_POST['grade_news']) AND isset($_POST['grade_news']) AND isset($_POST['grade_menus']) AND isset($_POST['grade_grade']) AND isset($_POST['grade_users']) AND isset($_POST['grade_livredor']))
    {
        $titre = addslashes($_POST['titre']);
        $grade_news = addslashes($_POST['grade_news']);
    $grade_menus = addslashes($_POST['grade_menus']);
    $grade_grade = addslashes($_POST['grade_grade']);
    $grade_users = addslashes($_POST['grade_users']);
    $grade_livredor = addslashes($_POST['grade_livredor']);
        // On vérifie si c'est une modification de news ou pas
        if ($_POST['id_grades'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query("
    INSERT INTO grades VALUES('', '" . $titre . "', '" . $grade_news . "', '" . $grade_menus . "', '" . $grade_grade . "', '" . $grade_users . "', '" . $grade_livredor . "')");
        }
        else
        {
            // C'est une modification, on met juste à jour le titre et le contenu
            mysql_query("
    UPDATE grades SET titre='" . $titre . "', grade_news='" . $grade_news . "' , grade_menus='" . $grade_menus . "' , grade_grade='" . $grade_grade . "' , grade_users='" . $grade_users . "' , grade_livredor='" . $grade_livredor . "' WHERE id=" . $_POST['id_grades']);
                     

      }
    }


    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer un grade ?
    //--------------------------------------------------------

    if (isset($_GET['supprimer_grade'])) // Si on demande de supprimer un grade
    {
        // Alors on supprime le grade correspondant
        mysql_query('DELETE FROM grades WHERE id=' . $_GET['supprimer_grade']);
    }
    ?>

    <table border="
    1" cellspacing="0"><tr>
    <td>Modifier</td>
    <td>Supprimer</td>
    <td>Titre</td>

    </tr>

    <?php
    $retour = mysql_query('SELECT * FROM grades ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>

    <tr>
    <td><?php echo '<a href="
    index.php?page=admin_grade_creer&amp;modifier_grade=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php echo '<a href="
    index.php?page=admin_grade&amp;supprimer_grade=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    </tr>

    <?php
    }  } else { echo 'Vous n\'avez pas le grade suffisant pour accéder à cette partie'; } // Fin de la boucle

    ?></table>


    creer_grade.php

    <?php
    if (is_file('./conf.php3')) $baseDir = './' ;
    elseif (is_file('../conf.php3')) $baseDir = '../' ;
    elseif (is_file('../../conf.php3')) $baseDir = '../../' ;
    else $baseDir = '/' ;

    $rep=opendir($baseDir.'modules');
    while ($file = readdir($rep)){
        if(substr($file, strlen($file)-4) == '.php')
           require($baseDir.'modules/'.$file) ;
    }

    closedir($rep);

    require("$baseDir/conf.php3"); //On insert le fichier qui contient les informations
    session_start(); //On demarre une session parce que j'ai envi ^^


    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
            die('Vous n\'êtes pas autorisez à acceder à cette page.'); //Si non, on arrete le script et on affiche un message
    }
    mysql_connect($sql_serveur,$sql_login,$sql_pass) or die ("Erreur lors de la connection au serveur MySQL !");


    mysql_select_db($sql_bdd) or die("Impossible de selectionner la base de données\n<br>\nVoici l'
    erreur renvoyée par le serveur MySQL :\n<br>\n".mysql_error());
           
    //On se connecte à MySQL
    /////////////////////////////////////////
    //--! REQUETES POUR LES PERMISSIONS !--//
    /////////////////////////////////////////
    $pseudo_membre = $_SESSION['pseudo'];
    $requete = mysql_query("
    SELECT * FROM pdf_membre WHERE `pseudo`='$pseudo_membre'");
    $result = mysql_fetch_array ($requete);

    $grade_utilisateur = $result['grade'];

    //On vérifie si le grade correspond a un qui est stocké dans la table

    $reponse2 = mysql_query("
    SELECT * FROM grades WHERE `titre`='$grade_utilisateur'");
    $result2 = mysql_fetch_array ($reponse2);

    $grade_grade = $result2['grade_grade'];
    /////////////////////////////////////////////
    //--! FIN REQUETES POUR LES PERMISSIONS !--//
    /////////////////////////////////////////////
    if ($grade_grade == 'oui') {

     ?>
    <h3><a href="
    index.php?page=espace_membre">Retour à mes options</a></h3>
    <h3><a href="
    index.php?page=admin_grade">Retour à la liste des grades</a></h3>

    <?php

    if (isset($_GET['modifier_grade'])) // Si on demande de modifier une news
    {
        // On récupère les infos de la correspondante
        $retour = mysql_query('SELECT * FROM grades WHERE id=' . $_GET['modifier_grade']);
        $donnees = mysql_fetch_array($retour);
       
        // On place le titre et le contenu dans des variables simples
        $titre = $donnees['titre'];
     $grade_news = $donnees['grade_news'];
    $grade_menus = $donnees['grade_menus'];
    $grade_grade = $donnees['grade_grade'];
    $grade_users = $donnees['grade_users'];
    $grade_livredor = $donnees['grade_livredor'];
        $id_grades = $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 = '';
        $grade_news = '';
    $grade_menus = '';
    $grade_grade = '';
    $grade_users = '';
    $grade_livredor = '';
        $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>

    <form action="
    index.php?page=admin_grade" method="post">
    <p>Titre : <input type="
    text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>

    <p>
       Permissions :<br />
    <table width="
    349" border="0">
      <tr>
        <td>Peut Administrer les news</td>
        <td><? echo $grade_news ?></td>
        <td><input name="
    grade_news" type="checkbox" id="grade_news" value="oui">
          Oui<br>
            <input name="
    grade_news" type="checkbox" id="grade_news" value="non">
          Non</td>
      </tr>
      <tr>
        <td>Peut Administrer les menus</td>
        <td><? echo $grade_menus ?></td>
        <td><input name="
    grade_menus" type="checkbox" id="grade_menus" value="oui">
    Oui<br>
    <input name="
    grade_menus" type="checkbox" id="grade_menus" value="non">
    Non</td>
      </tr>
      <tr>
        <td>Peut Administrer les grades</td>
        <td><? echo $grade_grade ?></td>
        <td><input name="
    grade_grade" type="checkbox" id="grade_grade" value="oui">
    Oui<br>
    <input name="
    grade_grade" type="checkbox" id="grade_grade" value="non">
    Non</td>
      </tr>
      <tr>
        <td>Peut Administrer les Utilisateurs</td>
        <td><? echo $grade_users ?></td>
        <td><input name="
    grade_users" type="checkbox" id="grade_users" value="oui">
    Oui<br>
    <input name="
    grade_users" type="checkbox" id="grade_users" value="non">
    Non</td>
      </tr>
      <tr>
        <td>Peut Administrer le livre d'or</td>
        <td><? echo $grade_livredor ?></td>
        <td><input name="
    grade_livredor" type="checkbox" id="grade_livredor" value="oui">
    Oui<br>
    <input name="
    grade_livredor" type="checkbox" id="grade_livredor" value="non">
    Non</td>
      </tr>
    </table>
    <p><br />
       
        <input type="
    hidden" name="id_grades" value="<?php echo $id_grades; ?>" />
        <input type="
    submit" value="Envoyer" />
    </p>
    </form>



    <?php
      }  else { echo 'Vous n\'avez pas le grade suffisant pour accéder à cette partie'; } // Fin de la boucle

    ?></table>

    Remarquez que je me suis aidé du TP 'news sur votre site' pour réaliser ce script.

    Voilà si vous trouvez l'erreur je vous en remercie d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      3 août 2006 à 22:47:09

      fait voir:

      echo "UPDATE grades SET titre='" . $titre . "', grade_news='" . $grade_news . "' , grade_menus='" . $grade_menus . "' , grade_grade='" . $grade_grade . "' , grade_users='" . $grade_users . "' , grade_livredor='" . $grade_livredor . "' WHERE id=" . $_POST['id_grades'];


      si ca marche pas, m'accuse pas.
      C'est du copier coller de ton code :p
      Donc si ca marche po, tu le postasse jusqu'a ce que t'arrive a l'afficher.
      Si sa marche, du colle ici :)
      • Partager sur Facebook
      • Partager sur Twitter
        4 août 2006 à 1:15:56

        C'est grossièrement ce que j'allais dire: es-tu sûr que lors d'une modification ton script passe par la requête d'update???
        Si tu ne l'es pas, je te conseille de faire des echo un peu partout dans ton script, comme ça, tu verras le déroulement...
        • Partager sur Facebook
        • Partager sur Twitter

        bug de script

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown