Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/02/2011, 10h31   #1
Invité de passage
 
Homme David Bollinger
Développeur Web
Inscription : février 2011
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme David Bollinger
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2011
Messages : 23
Points : 3
Points : 3
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 :
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 :
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 :
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>
ourson78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 10h38   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
hello, pour voir les erreurs mysql avant ta connexion fait :
Code :
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 10h55   #3
Invité de passage
 
Homme David Bollinger
Développeur Web
Inscription : février 2011
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme David Bollinger
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2011
Messages : 23
Points : 3
Points : 3
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
ourson78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h08   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 12h37   #5
Invité de passage
 
Homme David Bollinger
Développeur Web
Inscription : février 2011
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme David Bollinger
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2011
Messages : 23
Points : 3
Points : 3
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
ourson78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h11.


 
 
 
 
Partenaires

Hébergement Web