livre d or qui reste sans message =X

maxxx182
Invité n'ayant pas de compte PHPfrance

23 août 2006, 22:06

Voila mon probleme .. merci de maider Svp =)
Jai créer un livre dor.. mais le probleme est le suivant :
Les messages envoyés ne se mettent pas sur le site ..
Exemple: Pseudo: Jean-Marc
Message: Blablabla



Les derniers messages:
a dit :
Ni le pseudo , ni le message ne s inscrit! alors que dans ma table dans ma BDD, je peux voir ces message ! Quel est le probleme ? Merci de répondre.Voici mon script:
 <!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>Livre d'or</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        form, .pages
        {
            text-align:center;
        }
        </style>
    </head>
    
    <body>

    <form method="post" action="livreor.php">
    <p>Mon site vous plaît ? Laissez-moi un message !</p>
    
    <p>
        Pseudo : <input name="pseudo" /><br />
        Message :<br />
        <textarea name="message" rows="8" cols="35"></textarea> <br />
        <input type="submit" value="Envoyer" />
    </p>
    </form>

<p class="pages">
<?php
mysql_connect("localhost", "*****", "*****");
mysql_select_db("test");


if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
    
    $pseudo = 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 = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
    
      mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
}



$nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :o)


$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];

$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);


echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
}

?>

</p>

<?php


if (isset($_GET['page']))
{
    $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.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)
}


$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{
    echo '<p><gras>' . $donnees['pseudo'] . '</gras> a écrit :<br />' . $donnees['message'] . '</p>';
}

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>

</body>
</html> 

Cordialement

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 août 2006, 01:25

Salut,

Attention à ne pas laisser les identifiants de connexion lorsque tu postes... on ne sait jamais :wink:

Ton souci est plutôt lors de la lecture de la base de données et non l'enregistrement puisque tu dis que les données y sont.

Affiche la requête générée pour vérifier la construction:
$sql = 'SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;
echo $sql;
exécute la directement dans phpmyadmin ou autre.

Le nom de la base est correct ?
les champs existent bien ?
Un postpour t'aider à debugger.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute