IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème dans mon système de news [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Points : 15
    Points
    15
    Par défaut problème dans mon système de news
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <!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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <!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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <!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)



    <config>Windows 7 / Firefox 3.6.13</config>

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    hello, pour voir les erreurs mysql avant ta connexion fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('mysql.trace_mode', true);
    ensuite tu ne dois pas faire de addslashes mais mysql_real_escape_string
    tu ne dois pas non plus faire de stripslashes, et le htmlspecialchars se fais uniquement lors de l'affichage,
    si tu commences un nouveau projet utilise l'extension mysqli et pas mysql

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Salut,

    j'ai fais ce que tu m'as dis pour les erreurs sql, index.php et liste_news.php et j'ai le retour suivant que je ne comprend pas.

    Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par ourson78 Voir le message
    Salut,

    j'ai fais ce que tu m'as dis pour les erreurs sql, index.php et liste_news.php et j'ai le retour suivant que je ne comprend pas.

    Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0
    tu dois faire mysql_free_result après avoir récupère les résultats de chaque requête

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Un grand merci à toi stealth35 je vais retenir le nom de ces fonctions magiques, 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, je te met quand même l'erreur renvoyé par mysql_free_result :

    Warning: mysql_query() [http://www.mysql.com/doc]: Column count doesn't match value count at row 1 in C:\wamp\www\news Admin\liste_news.php on line 41

    et encore merci, je vais mieux dormir,

    ciao

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] problème dans mon système de news
    Par ourson78 dans le forum Langage
    Réponses: 1
    Dernier message: 22/02/2011, 11h08
  2. Réponses: 4
    Dernier message: 03/02/2011, 20h58
  3. [MySQL] Ajout de photo dans mon système de news
    Par polux31 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 02/02/2011, 11h51
  4. Problème dans mon système de news :-(
    Par P1xHeLL dans le forum Langage
    Réponses: 0
    Dernier message: 10/12/2010, 02h17
  5. Réponses: 2
    Dernier message: 03/05/2007, 09h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo