Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur de mon script dans le TP Livre d' Or.

Le seul truc, c' est que pour la trouver, faut bien chercher.

    25 février 2006 à 16:46:47

    Hello tout le monde, désolé de re-déranger, ce serait pour demander un peu d' aide.

    Le script suivant ne fonctionne pas :
    <!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>TP Livre d' Or</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <link rel="stylesheet" media="screen" type="text/css" title="Design sombre" href="Formulaire.css" />
     </head>
     <body>
      <h1 align="center"><u>TP : Livre d'
    Or</u></h1>
     
      <fieldset>
      <legend>Message à entrer</legend>
      <form action="Livredor.php" method="post">
       <p>
        <label>Pseudonyme :<input type="text" name="pseudo" /></label>
       </p>
       
       <p>
        <label>Votre message :<br>
         <textarea name="message" rows="10" cols="40"></textarea>
            </label>
       </p>
       <input type="submit" value="Envoyer" /> <input type="reset" value="Effacer" /><br>
      </form>
      </fieldset> 
     
      <fieldset>
       <legend>Pages</legend>
       <p align="center">
       <?php
       @mysql_connect("localhost","root","");
       @mysql_select_db("testphp");
       
       if (isset($_POST['pseudo']) AND isset($_POST['message']))
       {
        $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
            $message = nl2br(htmlentities($_POST['message'], ENT_QUOTES));
           
            @mysql_query("INSERT INTO livredor VALUES('','".$pseudo."','".$message."')");
       }
       
       $nombredemessageparpage = 15;
       $retour = @mysql_query('SELECT COUNT (*) AS nb_messages FROM livredor');
       $donnees = @mysql_fetch_array($retour);
       $totaldesmessages = $donnees['nb_messages'];
       
       echo 'Il y a'.$totaldesmessages.' messages en tout<br>';
       
       $nombredepages = ceil($totaldesmessages/$nombredemessageparpage);
       
       for ($i=1; $i<=$nombredepages; $i++)
       {
        echo '<a href="Livredor.php?page='.$i.'">'.$i.'</a>';
       }
       @mysql_close();
       ?>
       </p>
      </fieldset>
     
      <fieldset>
       <legend>Derniers messages</legend>
       <?php
        if (isset($_GET['page']))
            {
             $page = $_GET['page'];
            }
            else
            {
             $page = 1;
            }
           
            $numerodupremiermessage = ($page - 1)*$nombredemessageparpage;
            @mysql_connect('localhost','root','');
            @mysql_select_db('testphp');
            $reponses = @mysql_query("SELECT * FROM livredor ORDER BY id DESC LIMIT '.$numerodupremiermessage.','.$nombredemessageparpage.'");
            $donnees = @mysql_fetch_array($reponses);
            ?>
             <table>
               <?php
               while ($donnees)
               {
                echo '<tr><td><u><strong>'.$donnees['pseudo'].'</strong> a écrit :</u><br>'.$donnees['message'].'</td></tr>';
               }
               ?>
             </table>
            <?php
            @mysql_close();
       ?>
      </fieldset>
     </body>
    </html>


    Le "if" ne fonctionne pas, mais les messages vont bien dans la table. J' ai beau la lire et la relire, pas moyen de comprendre ce qui rend ce script invalide. Une bonne âme avec de bons yeux pourrait-elle m' aider ? :-° Pleaaaassse...*sourire niais*
    • Partager sur Facebook
    • Partager sur Twitter
      25 février 2006 à 16:48:50

      je rappel que isset ca sert juste a voir si la variable existe, utiliser !empty ou != NULL
      • Partager sur Facebook
      • Partager sur Twitter
        25 février 2006 à 16:57:09

        Merci de la remarque, Jonas01. J' ai modifié le script
        if (isset($_POST['pseudo']) AND isset($_POST['message']))
           {
            $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
                $message = nl2br(htmlentities($_POST['message'], ENT_QUOTES));
               
                @mysql_query("INSERT INTO livredor VALUES('','".$pseudo."','".$message."')");
           }
        en
        if (isset($_POST['pseudo']) AND isset($_POST['message']))
           {
            if ($_POST['pseudo'] =! NULL AND $_POST['message'] =! NULL)
                {
                 $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
                 $message = nl2br(htmlentities($_POST['message'], ENT_QUOTES));
                 @mysql_query("INSERT INTO livredor VALUES('','".$pseudo."','".$message."')");
                }
           }

        Malheureusement, les messages, pas plus que le nombre total de pages ou les liens vers les différentes pages ne fonctionne.

        [EDIT]Je viens de faire le test du code. La table récupère "1" en pseudo et "1" en message à chaque post. :(
        • Partager sur Facebook
        • Partager sur Twitter

        Erreur de mon script dans le TP 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