Partage
  • Partager sur Facebook
  • Partager sur Twitter

Livre d'or

    19 août 2006 à 12:53:49

    Bonjour,

    voici le script de mon livre d'or :

    <?php
                    include("entete.php");
                    include("menus_gauche.php");
                    include("menus_droit.php");
    ?>

                                    <div id="centre">
                                            <h1> &lt;&lt; Livre d'Or >> </h1>
                                           
                                            <div class="section">
                                                    <form action="livre_dor.php" method="post" id="formulaire_livreor">                             
                                                            <h2>Formulaire</h2>
                                                           
                                                            <p>
                                                                    Si ce site vous plait n'
    hésitez pas à laisser un petit message sur le livre d'or.
                                                                    Les annonces doivent être validées par un administrateur avant d'
    être affichées.
                                                                                                                           
                                                                            <p>
                                                                                    <label>Votre Nom :<br/>
                                                                                    <input name="pseudo" id="nom_or" type="text" /></label>
                                                                            </p>
                                                                           
                                                                            <p>
                                                                                    <label >Votre message :<br/>
                                                                                    <textarea name="message" id="message_or" rows="8" cols="70"></textarea></label>
                                                                            </p>

                                                                            <p class="bouton_droite"><input type="submit" value="Envoyer" /></p>                           
                                                            </p>                       
                                                    </form>
                                            </div>

                                            <div class="section">
                                                    <h2>Vos avis</h2>
                                                                                                                                                   
    <?php
            $base = mysql_connect("localhost", "root", "");
            mysql_select_db("test", $base);

            // --------------- Etape 1 -----------------
            // Si un message est envoyé, on l'enregistre
            // -----------------------------------------
            if (isset($_POST['pseudo']) AND isset($_POST['message']))
            {
                    $pseudo = trim(htmlentities($_POST['pseudo'], ENT_QUOTES)); // On utilise htmlentities par mesure de sécurité
                    $message = htmlentities($_POST['message'], ENT_QUOTES); // De même pour le message
                    $message = trim($message);
                   
                    if (!(empty($pseudo) OR empty($message)))
                    {
                            $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
                            // On peut enfin enregistrer :o)
                            mysql_query("INSERT INTO livre_dor VALUES('', '" . time() . "', '" . $pseudo . "', '" . $message . "', 'false');");         
                    }
            }
            // --------------- Etape 2 -----------------
            // On écrit les liens vers chacune des pages
            // -----------------------------------------
            // On met dans une variable le nombre de messages qu'on veut par page
            $nombreDeMessagesParPage = 5; // Essayez de changer ce nombre pour voir :o)
            // On récupère le nombre total de messages
            $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livre_dor');
            $donnees = mysql_fetch_array($retour);
            $totalDesMessages = $donnees['nb_messages'];
                           
            // On calcule le nombre de pages à créer
            $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
           
            // --------------- Etape 3 ---------------
            // Maintenant, on va afficher les messages
            // ---------------------------------------
            if (isset($_GET['page']))
            {
                    $page = intval($_GET['page']); // On récupère le numéro de la page indiqué dans l'adresse (livre_dor.php?page=4)
            }
            else // La variable n'existe pas, c'est la première fois qu'on charge la page
            {
                    $page = 1; // On se met sur la page 1 (par défaut)
            }
            // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
            $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
            $reponse = mysql_query('SELECT * FROM livre_dor WHERE VALIDE="t" ORDER BY id DESC LIMIT ' .
            $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
           
            $firstentry = true; // premiere ligne
           
            while ($donnees = mysql_fetch_array($reponse))
            {
                    if ($firstentry == true)
                    {
                            $firstentry = false;
                    }
                    else
                    {             
                            echo "<div class=\"pied\"></div>";           
                    }
                    echo "<h4 class=\"livre_dor\">" . $donnees['PSEUDO'] . ", le " . date('d/m/Y', $donnees['MADATE']) . " à " . date('H\hi', $donnees['MADATE']) . "</h4>";     
                    echo "<p>" . $donnees['MESSAGE'] . "</p>";           
            }

            // Puis on fait une boucle pour écrire les liens vers chacune des pages
            echo "<div class=\"pied\">";
            echo 'Page : ';
                   
            for ($i = 1 ; $i <= $nombreDePages ; $i++)
            {
                    if ($page == $i)
                    {
                            echo ' ' .$i.' ';
                    }
                    else
                    {
                            echo '<a href="livre_dor.php?page=' . $i . '">' . $i . '</a> ';
                    }
            }
            echo "</div>";
           
            mysql_close(); // On n'oublie pas de fermer la connexion à MySQL
            // header("Location:livre_dor.php");
            // exit;
    ?>                                         
                                                           
                                                            <!-- Page <a href="#">1</a> <a href="#">2</a> <a href="#">3</a> <a href="#">4</a> ... <a href="#">120</a> <a href="#">121</a> <a href="#">122</a> -->
                                                                                                   
                                            </div>   
                                    </div>
                           
    <?php include("pied.php"); ?>


    est-ce que vous voyez des choses à amelioré ?

    comment faire pour afficher dans mon menu de gauche de ma page principale un message aléatoire de mon livre d'or ? => en fait, c'est peut-être plus judicieux d'afficher le dernier message inscrit dans mon livre d'or (ça augmente la rapidité de mon script), non ? ...comment faire ?
    • Partager sur Facebook
    • Partager sur Twitter
      19 août 2006 à 12:57:43

      Il doit bien exister une fonction random pour faire ça! Je t'en ai trouvé plusieurs: fais ton choix j'ai pas été voir de plus près! doc php
      • Partager sur Facebook
      • Partager sur Twitter
      Vous utilisez git et (Composer, Sismo, Symfony ou ctags)? Simplifiez vous la vie avec des hooks!
        19 août 2006 à 13:19:20

        pour afficher le dernier message, j'utilise ce code :
        $reponse = mysql_query('SELECT * FROM livre_dor WHERE VALIDE="t" ORDER BY id DESC LIMIT 0,1');
                               
                while ($donnees = mysql_fetch_array($reponse))
                {              
                        $pseudo = $donnees['PSEUDO'];
                        $message = $donnees['MESSAGE'];
                }


        y a pas plus rapide ?
        • Partager sur Facebook
        • Partager sur Twitter
          19 août 2006 à 13:55:33

          Pourquoi un while pour une requête qui ne va envoyer qu'une réponse ?
          $reponse = mysql_query('SELECT * FROM livre_dor WHERE VALIDE="t" ORDER BY id DESC LIMIT 0,1');
          $donnees = mysql_fetch_array($reponse))
          $pseudo = $donnees['PSEUDO'];
          $message = $donnees['MESSAGE'];
          • Partager sur Facebook
          • Partager sur Twitter
            19 août 2006 à 13:58:30

            en fait tu as gardé le tuto de matéo et tu l'as modifié quelques peu .....

            Comme moi :p

            Mais perso moi j'ai pas rajouté le temps j'ai rajouté une note que les visiteurs donnent au site et la moyenne du site .
            • Partager sur Facebook
            • Partager sur Twitter
              19 août 2006 à 16:40:21

              d'accord

              ce que j'ai peure avec le systeme actuel c'est que je vais recevoir pleins de message fait avec des moteurs , non ?
              • Partager sur Facebook
              • Partager sur Twitter

              Livre d'or

              × 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