Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PHP ]Problème pour les news

L'enregistrement

Sujet résolu
    4 août 2006 à 14:11:57

    Bonjour, voici mon problème :
    J'ai installé un système de news sur mon site (grâce au tuto de M@teo21) mais je n'arrive pas à les enregistrer, j'ai aussi pris la correction pour tester et toujours pas.
    Quand je vais sur rediger_news.php, j'écirs ma news, je clique sur envoyer et rien. Même pas une erreur.

    Voici mes 2 pages :


    liste_news.php

    <!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
    $host = "localhost" ;
    $pass = "*****" ;
    $user = "steve" ;
    $bdd = "steve" ;

    $connection = mysql_connect ($host,$user,$pass) or die ('Erreur de connection, mauvais identifiants...');
    $selection = mysql_select_db ($bdd, $connection) or die ('Erreur de selection, mauvaise base de donnee');


    if (isset($_POST['titre']) AND isset($_POST['contenu']))
    {
        $titre = addslashes($_POST['titre']);
        $contenu = addslashes($_POST['contenu']);
       
        if ($_POST['id_news'] == 0)
        {
            mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
        }
        else
        {
            mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id=" . $_POST['id_news']);
        }
    }


    if (isset($_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', $donnees['timestamp']); ?></td>
    </tr>

    <?php
    }
    ?>
    </table>

    </body>
    </html>


    et rediger_news.php

    <!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>
        </head>
       
        <body>

    <h3><a href="liste_news.php">Retour à la liste des news</a></h3>

    <?php
    mysql_connect("localhost", "steve", "*****");
    mysql_select_db("steve");

    if (isset($_GET['modifier_news']))
    {
       
        $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['modifier_news']);
        $donnees = mysql_fetch_array($retour);
       
       
        $titre = $donnees['titre'];
        $contenu = $donnees['contenu'];
        $id_news = $donnees['id'];
    }
    else
    {
        $titre = '';
        $contenu = '';
        $id_news = 0;
    }
    ?>

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

    <p>
        Contenu :<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>

    </body>
    </html>



    Merci d'avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      4 août 2006 à 14:18:18

      T'as bien une table news dans ta bdd mysql ? et remplace les mysql_query('...') par des mysql_query('...') or die('Erreur ligne '.__LINE__.'<br />'.mysql_error());

      Aussi, enlève les ' ' autour de ".time()." ,c'est un nombre
      • Partager sur Facebook
      • Partager sur Twitter
        4 août 2006 à 14:21:44

        Oui, j'ai une table news et j'ai remplacé.
        Je valide la news et il me donne comme erreur
        Erreur ligne46
        Column count doesn't match value count at row 1


        Voici la ligne 46 de rediger_news.php :
        <textarea name="contenu" cols="50" rows="10">
        • Partager sur Facebook
        • Partager sur Twitter
          4 août 2006 à 14:23:46

          Ta table se structure comme suit ?
          ID, Titre, Contenu, Timestamp ?
          En gros ya un champ de trop ou manquant dans le INSERT
          • Partager sur Facebook
          • Partager sur Twitter
            4 août 2006 à 14:29:10

            Oh oui, il y avait une table en trop.
            Meric beaucoup.

            Autre prob: elle ne s'affiche pas sur mon site (http://sims2.goldzoneweb.info) voici le code que j'ai mis :
            <?php
            mysql_connect("localhost", "steve", "*****");
            mysql_select_db("steve");


            $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>Le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
                </h3>
               
                <p>
                <?php
                $contenu = nl2br(stripslashes($donnees['contenu']));
                echo $contenu;
                ?>
                </p>
            </div>
            <?php
            }
            ?>
            • Partager sur Facebook
            • Partager sur Twitter
              4 août 2006 à 14:34:27

              "or die('Erreur ligne '.__LINE__.'<br />'.mysql_error()); " après mysql_connect, mysql_select_db et mysql_query, et ça te dit habituellement ce qui cloche. Mets aussi error_reporting(E_ALL); pour voir les erreurs de tous genres
              • Partager sur Facebook
              • Partager sur Twitter
                4 août 2006 à 14:39:18

                J'ai ajouté "or die('Erreur ligne '.__LINE__.'<br />'.mysql_error()); " après mysql_connect, mysql_select_db et mysql_query

                aucune erreur.
                "error_reporting(E_ALL);" je le met où ?
                • Partager sur Facebook
                • Partager sur Twitter
                  4 août 2006 à 14:41:39

                  En début de script, 1 ère ligne
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 août 2006 à 14:43:10

                    Il me met aucune erreur
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 août 2006 à 14:52:30

                      Moi je vois une erreur, mais voudrais tu reposter ta page d'accueil ? On voit le PHP pour afficher les news, directement dans la source, c'est pas normal. A se demander si t'as mis ton accueil en .html
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 août 2006 à 14:55:04

                        Voici ma page d'acceuil :

                        <!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>Le site des fans des Sims 2</title>
                        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                        <link href="style/index.css" rel="stylesheet" title="Mise en page" type="text/css" media="screen" />
                        <link rel="shortcut icon" href="images/vide.ico" />
                        </head>

                        <body>

                        <div id="en_tete">
                                <img src="images/banniere.png" alt="Logo" id="Logo"/>
                               
                                <!--Début script date + heure-->
                                <p><script type="text/javascript" src="http://www.service-webmaster.fr/application/afficheurs/dns-date-3639.html"></script> -
                                <!--Fin script date + heure-->
                               
                                <!--Début du script Saint du Jour-->
                                <script type="text/javascript" src="http://www.service-webmaster.fr/application/afficheurs/dns-fetes-3639.html"></script></p>
                                <!--Fin du script Saint du Jour-->
                        </div>

                        <div id="menu_horizontal">
                        <ul>
                        <li><a href="index.html">Accueil</a></li>
                        <li><a href="index.html">News</a></li>
                        <li><a href="index.html">Livre d'or</a></li>
                        <li><a href="mailto:sam60640@wanadoo.fr?subject=Le site des fans des Sims 2">Contact</a></li>
                        <li><a href="/forum/index.php">Forum</a></li>
                        </ul>
                        </div>

                        <div id="menu1">

                        <div class="element_menu">
                                <h3>Sims 2</h3>
                                <ul>   
                                        <li><a href="index.html" accesskey="1">Page 1</a></li>
                                        <li><a href="index.html" accesskey="2">Page 2</a></li>
                                        <li><a href="index.html" accesskey="3">Page 3</a></li>
                                </ul>
                        </div>
                               
                        <div class="element_menu">
                                <h3>Sims 2 : Académie</h3>
                                <ul>
                                        <li><a href="index.html" accesskey="4">Page 4</a></li>
                                        <li><a href="index.html" accesskey="5">Page 5</a></li>
                                        <li><a href="index.html" accesskey="6">Page 6</a></li>
                                </ul>
                        </div>
                               
                        <div class="element_menu">
                                <h3>Sims 2 : Nuits de folie</h3>
                                <ul>
                                        <li><a href="index.html" accesskey="7">Page 7</a></li>
                                        <li><a href="index.html" accesskey="8">Page 8</a></li>
                                        <li><a href="index.html" accesskey="9">Page 9</a></li>
                                </ul>
                        </div>
                               
                        </div>

                        <div id="corps">
                        <h1>Bienvenue sur le site des fans des Sims 2 ! ! !</h1>
                        <p>Ce site est encore en construction, mais vous pouvez toujours aller sur <a href="/forum/index.php" target="_blank">le forum de test</a> en attendant.
                        </p>

                        <p>Voici les dernières news :</p>


                        <?php
                        mysql_connect("localhost", "steve", "*****");
                        mysql_select_db("");


                        $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>Le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
                            </h3>
                           
                            <p>
                            <?php
                            $contenu = nl2br(stripslashes($donnees['contenu']));
                            echo $contenu;
                            ?>

                            </p>
                        </div>
                        <?php
                        }
                        ?>


                        </div>

                        <div id="menu2">
                               
                        <div class="element_menu">
                                <h3>Sites</h3>
                                <ul>
                                        <li><a href="page10.html" accesskey="10">Page 10</a></li>
                                        <li><a href="page11.html" accesskey="11">Page 11</a></li>
                                        <li><a href="page12.html" accesskey="12">Page 12</a></li>
                                </ul>
                        </div>
                               
                        <div class="element_menu">
                                <h3>Partenaires</h3>
                                <ul>
                                        <li><a href="page15.html">Page 15</a></li>
                                        <li><a href="page16.html">Page 16</a></li>
                                        <li><a href="page17.html">Page 17</a></li>
                                </ul>
                        </div>

                        </div>

                        <div id="pied_de_page">
                        <p>Site créé par Steve pour me contacter => <a href="mailto:sam60640@wanadoo.fr"><img border="0" src="images/e-mail.gif"  alt="e-mail"/></a><br />
                        <!--Code HTML service Compteur de visite de Service-webmaster.fr -->
                        <script type="text/javascript" src="http://www.service-webmaster.fr/application/compteur_visite/compteur-3639-485.html"></script>
                        <!--Code HTML service Compteur de visite de Service-webmaster.fr --></p>
                        </div>

                        </body>

                        </html>
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 août 2006 à 14:57:17

                          c'est .php ou .html ? Je doute de ça parce que je vois dans la source de ta page ton code PHP, ce qui est anormal .
                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 août 2006 à 14:57:57

                            elle est en .html
                            Pourquoi ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 août 2006 à 14:59:55

                              Il faut la mettre en .php, sinon le serveur renvoie le code sans interpréter le PHP, ç'est pas bien, n'importe qui peut lire ton pass mysql, ta table, en gros, Pas bien >_< .

                              à chaque fois qu'il y a <?php et ?> dans une page elle doit être en .php
                              • Partager sur Facebook
                              • Partager sur Twitter
                                4 août 2006 à 15:02:58

                                Ah d'accord, voilà, je l'ai mise en .php,:waw: mais le texte de la news n'y est pas :waw::'(

                                il me donne une erreur sur rediger_news.php

                                Erreur ligne50
                                Champ 'contenu' inconnu dans field list
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 août 2006 à 15:05:33

                                  C'est bien 'contenu' le champ Mysql ou tu sauvegardes tes messages dans ta table ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    4 août 2006 à 15:08:09

                                    Voilà, c'est parti, merci beaucoup de ta patience ! ! !
                                    Question résolue. :D
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    [PHP ]Problème pour les news

                                    × 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