[PHP] Livre d'or, problème....
Résolu
ClemsZer0
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je vous explique mon problème :
Alors, tout d'abord je voulais faire un livre d'or en PHP, ce que j'ai fais mais il avait un problème, alors j'ai repris un script et il s'avère qu'il ce même problème :
Les message ne s'affiche pas et apparemment ce n'est pas un problème de connexion à la DB, alors si vous pouviez m'aidez cela serait sympa voici le 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" />
</head>
<body>
<form action="" method="post">
<p>
Pseudo :<input type="text" name="message" id="message"/><br />
Message :<textarea rows="5" cols="18" value="Entrez votre message ici...."></textarea>
<input type="submit" value="Stupéfix !" />
</p>
</form>
<p class="pages">
<?php
mysql_connect("HOTE", "PSEUDO", "MDP");
mysql_select_db("BASEDEDONNES");
if(isset($_POST['pseudo']) AND isset($_POST['message'])) //Si un visiteur laisse un message on l'enregistre
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);
mysql_query("INSERT INTO livreor VALUE('', '" . $pseudo . "', '" . $message . "')");
}
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 20; // 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 livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>
<?php
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
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)
}
// 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 livreor ORDER BY ID DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while($donnees = mysql_fetch_array($reponse))
{
echo'
<p><strong> ' . $donnees['pseudo'] . '</strong> à écrit :</p><p> ' .$donnees['message'] . ' </p> ';
}
mysql_close();
?>
</body>
</html>
Merci !!
Je vous explique mon problème :
Alors, tout d'abord je voulais faire un livre d'or en PHP, ce que j'ai fais mais il avait un problème, alors j'ai repris un script et il s'avère qu'il ce même problème :
Les message ne s'affiche pas et apparemment ce n'est pas un problème de connexion à la DB, alors si vous pouviez m'aidez cela serait sympa voici le 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" />
</head>
<body>
<form action="" method="post">
<p>
Pseudo :<input type="text" name="message" id="message"/><br />
Message :<textarea rows="5" cols="18" value="Entrez votre message ici...."></textarea>
<input type="submit" value="Stupéfix !" />
</p>
</form>
<p class="pages">
<?php
mysql_connect("HOTE", "PSEUDO", "MDP");
mysql_select_db("BASEDEDONNES");
if(isset($_POST['pseudo']) AND isset($_POST['message'])) //Si un visiteur laisse un message on l'enregistre
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);
mysql_query("INSERT INTO livreor VALUE('', '" . $pseudo . "', '" . $message . "')");
}
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 20; // 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 livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>
<?php
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
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)
}
// 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 livreor ORDER BY ID DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while($donnees = mysql_fetch_array($reponse))
{
echo'
<p><strong> ' . $donnees['pseudo'] . '</strong> à écrit :</p><p> ' .$donnees['message'] . ' </p> ';
}
mysql_close();
?>
</body>
</html>
Merci !!
A voir également:
- [PHP] Livre d'or, problème....
- Or - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Livre coran en français pdf - Télécharger - Histoire & Religion
- Easy php - Télécharger - Divers Web & Internet
- Malheureusement, votre colissimo ne peut pas être livré. - Forum Consommation & Internet
14 réponses
Salut,
j'ai ta réponse :
remplace tout ton formulaire par :
<form action="" method="post">
<p>
Pseudo :<input type="text" name="pseudo" id="message"/><br />
Message :<textarea rows="5" name="message" cols="18" value="Entrez votre message ici...."></textarea>
<input type="submit" value="Stupéfix !" />
</p>
</form>
Les noms des champs n'étaient pas définis correctement.
j'ai ta réponse :
remplace tout ton formulaire par :
<form action="" method="post">
<p>
Pseudo :<input type="text" name="pseudo" id="message"/><br />
Message :<textarea rows="5" name="message" cols="18" value="Entrez votre message ici...."></textarea>
<input type="submit" value="Stupéfix !" />
</p>
</form>
Les noms des champs n'étaient pas définis correctement.
Étonnant, chez moi ça affiche tous les messages bidon que j'ai créés. Ta table comprend bien trois champs ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Euh maintenant j'ai un autre problème quand je mets un message trop long et ben il ne s'affiche pas...
A ouais. Il fait combien de lignes ton message ? Quels sont les messages qui s'affiche correctement ? Combien lignes font-ils ? Enfin, est-ce que tu as un message d'erreur PHP ou MYSQL ?
Alors plus simple je vais te mettre le message exactement comme je veux l'envoyez :
"Bonjour à tous !!
Bienvenue sur le Livre d'or de
TDP, autrement dit, le Grimoire
d'or !
Il est à votre disposition pour partager vos avis sur ce site, et
même, y proposez des idées pour l'améliorer !!
Petit rappel :
Le Livre d'or n'est pas un chat"
Voilà, après non je n'ai pas d'erreur, et quand je met des message test sa marche bien, alors....
"Bonjour à tous !!
Bienvenue sur le Livre d'or de
TDP, autrement dit, le Grimoire
d'or !
Il est à votre disposition pour partager vos avis sur ce site, et
même, y proposez des idées pour l'améliorer !!
Petit rappel :
Le Livre d'or n'est pas un chat"
Voilà, après non je n'ai pas d'erreur, et quand je met des message test sa marche bien, alors....
Ce que j'ai fait c'est que j'ai refait la partie du code PHP d'envoi a ma sauce en reproduisant le schema de ta table SQL ce qu m'a eviter de perdre du temps a chercher l'erreur. Bon chez moi sa marche ainsi que ton message de bienvenue et le système de pagination des enregistrements. Reste à voir si ça marche chez toi.
livreor.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>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>
Pseudo :<input type="text" name="pseudo" id="pseudo"/>
</p>
<p><br />
Message :</p>
<p>
<textarea rows="5" cols="18" name="message">Entrez votre message ici....</textarea>
</p>
<p>
<input type="submit" value="Stupéfix !" />
</p>
</form>
<p class="pages">
<?php
mysql_connect("SERVEUR", "LOGIN", "MDP");
mysql_select_db("BASEDONNEES");
if (isset($_POST['pseudo']) && isset($_POST['message']))
{
$pseudo = htmlspecialchars(mysql_real_escape_string($_POST['pseudo']));
$message = htmlspecialchars(mysql_real_escape_string($_POST['message']));
$message_sl = nl2br($message);
$query = mysql_query("INSERT INTO livreor VALUES('','" . $pseudo . "','" . $message_sl . "')")or die(mysql_error() . ',' . mysql_errno());
}
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 20; // 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 livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
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)
}
// 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 livreor ORDER BY ID DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong> ' . $donnees['pseudo'] . '</strong> à écrit :</p><p> ' . $donnees['message'] . ' </p>';
}
mysql_close();
?>
</body>
</html>
Tiens moi au courent.
livreor.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>Livre d'or</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>
Pseudo :<input type="text" name="pseudo" id="pseudo"/>
</p>
<p><br />
Message :</p>
<p>
<textarea rows="5" cols="18" name="message">Entrez votre message ici....</textarea>
</p>
<p>
<input type="submit" value="Stupéfix !" />
</p>
</form>
<p class="pages">
<?php
mysql_connect("SERVEUR", "LOGIN", "MDP");
mysql_select_db("BASEDONNEES");
if (isset($_POST['pseudo']) && isset($_POST['message']))
{
$pseudo = htmlspecialchars(mysql_real_escape_string($_POST['pseudo']));
$message = htmlspecialchars(mysql_real_escape_string($_POST['message']));
$message_sl = nl2br($message);
$query = mysql_query("INSERT INTO livreor VALUES('','" . $pseudo . "','" . $message_sl . "')")or die(mysql_error() . ',' . mysql_errno());
}
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 20; // 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 livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
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)
}
// 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 livreor ORDER BY ID DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong> ' . $donnees['pseudo'] . '</strong> à écrit :</p><p> ' . $donnees['message'] . ' </p>';
}
mysql_close();
?>
</body>
</html>
Tiens moi au courent.