Php les message ne s'affiche pas
yandelyano
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
graffx Messages postés 6506 Date d'inscription Statut Contributeur Dernière intervention -
graffx Messages postés 6506 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, bon jour j'ai realiser un livre d'or mais quand j'ecri un commentaire, ça ne s'affich pas.. je voudrais savoir s'il y'avait une erreur?
<?php
include("banner.php");
?>
<form method="post" action="commentaires.php">
<p>Mon site vous plaît ? Laissez-moi un message !</p>
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<p>
<?php
mysql_connect('localhost', 'utilisateur', 'motdepasse');
mysql_select_db('coolblog_data');
if (isset($_POST['pseudo']) && isset($_POST['message']))
{
$sql = ('INSERT INTO coms VALUES ("","'.$_POST['pseudo'].'","'.$_POST['message'].'")');
mysql_query($sql);
}
$nombreDeMessagesParPage = 20;
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM coms');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="commentaires.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>
<?php
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM coms ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
}
mysql_close();
?>
<p> okay </p>
</body>
</html>
<?php
include("banner.php");
?>
<form method="post" action="commentaires.php">
<p>Mon site vous plaît ? Laissez-moi un message !</p>
<p>
Pseudo : <input type="text" name="pseudo" /><br />
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<p>
<?php
mysql_connect('localhost', 'utilisateur', 'motdepasse');
mysql_select_db('coolblog_data');
if (isset($_POST['pseudo']) && isset($_POST['message']))
{
$sql = ('INSERT INTO coms VALUES ("","'.$_POST['pseudo'].'","'.$_POST['message'].'")');
mysql_query($sql);
}
$nombreDeMessagesParPage = 20;
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM coms');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="commentaires.php?page=' . $i . '">' . $i . '</a> ';
}
?>
</p>
<?php
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM coms ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
}
mysql_close();
?>
<p> okay </p>
</body>
</html>
A voir également:
- Php les message ne s'affiche pas
- Recuperer message whatsapp supprimé - Guide
- Message supprimé whatsapp - Guide
- Message absence thunderbird - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
- Message du pere noel gratuit whatsapp - Accueil - Messagerie instantanée
8 réponses
Essaie de remplacer :
$sql = ('INSERT INTO coms VALUES ("","'.$_POST['pseudo'].'","'.$_POST['message'].'")');
Par
$sql = "INSERT INTO coms VALUES ('','".$_POST['pseudo']."','".$_POST['message']."')";
Dis moi si ça règle le problème.
Là tu avais un problème dans les quotes et guillemets.
Quand tu mets du texte dans une variable comme ici il est préférable de mettre des guillemets plutôt que des quotes.
Et dans ta requete SQL il vaut mieux utiliser des quotes que des guillemets.
J'ai donc inversé tes quotes et tes guillemets et j'ai enlever les parenthèses englobant le tout car elle étaient plutôt inutiles.
$sql = ('INSERT INTO coms VALUES ("","'.$_POST['pseudo'].'","'.$_POST['message'].'")');
Par
$sql = "INSERT INTO coms VALUES ('','".$_POST['pseudo']."','".$_POST['message']."')";
Dis moi si ça règle le problème.
Là tu avais un problème dans les quotes et guillemets.
Quand tu mets du texte dans une variable comme ici il est préférable de mettre des guillemets plutôt que des quotes.
Et dans ta requete SQL il vaut mieux utiliser des quotes que des guillemets.
J'ai donc inversé tes quotes et tes guillemets et j'ai enlever les parenthèses englobant le tout car elle étaient plutôt inutiles.
Salut,
J'aurais envie de dire la même chose que Passarinho44 à deux trois trucs près. Je vais partir de la requête corrigée par Passarinho44 car je la trouve plus propre.
Il m'arrive personnellement qu'une requête ne marche pas car je n'ai pas mis de addslashes donc.
Ca va simplement ajouter des \ quand il verra des '.
Ensuite, remplacer ceci:
Par ceci:
Ca fera en sorte que lorsqu'il y a un \, ce sera enlevé. Ensuite, j'ai désactivé la possibilité de mettre du html par sécurité (htmlentities) et fait en sorte que les sauts à la ligne marche. Ce sont quelques suggestions pour que votre script aille mieux.
Luan.
J'aurais envie de dire la même chose que Passarinho44 à deux trois trucs près. Je vais partir de la requête corrigée par Passarinho44 car je la trouve plus propre.
Il m'arrive personnellement qu'une requête ne marche pas car je n'ai pas mis de addslashes donc.
$sql = "INSERT INTO coms VALUES ('','".addslashes($_POST['pseudo'])."','".addslashes($_POST['message'])."')";
Ca va simplement ajouter des \ quand il verra des '.
Ensuite, remplacer ceci:
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
Par ceci:
echo '<p><strong>' . stripslashes($donnees['pseudo']) . '</strong> a écrit :<br />' . htmlentities(nl2br(stripslashes($donnees['message']))) . '</p>';
Ca fera en sorte que lorsqu'il y a un \, ce sera enlevé. Ensuite, j'ai désactivé la possibilité de mettre du html par sécurité (htmlentities) et fait en sorte que les sauts à la ligne marche. Ce sont quelques suggestions pour que votre script aille mieux.
Luan.
J'ajouterai même que plutôt que les addslashes, utiliser la fonction mysql_real_escape_string() qui ajoutera les \ mais évitera également d'autres problèmes que l'on pourrait trouver avec les requetes MySQL =)
merci pour la reponse mais ça ne marche pas non plus =( , et je voudrais rajouter que le texte entré par les viisiteur ne s'enregistrent meme pas sur la BBD
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vous voulez afficher des messages entrés par les visiteurs mais sans les enregistrer dans la base de donnée ? OU bien vouliez-vous dire qu'une entrée est crée dans la base de donnée mais que le champs "message" reste vide ?
Remplacer:
mysql_query($sql);
Par
mysql_query($sql) or die(mysql_error());
Et donnez-moi l'erreur que ça renvoie lorsque vous ajoutez un message s'il vous plaît.
Remplacer:
mysql_query($sql);
Par
mysql_query($sql) or die(mysql_error());
Et donnez-moi l'erreur que ça renvoie lorsque vous ajoutez un message s'il vous plaît.
non ce que je voulais dir c que meme les entrés ne sont pas créés
jai mis le "or die.." voici l'erreur:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /www/hostse.com/c/o/o/coolblog/htdocs/commentaires.php on line 21
et voici la ligne 21
mysql_query "INSERT INTO coms VALUES ('','".$_POST['pseudo']."','".$_POST['message']."')" or die(mysql_error());
jai mis le "or die.." voici l'erreur:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /www/hostse.com/c/o/o/coolblog/htdocs/commentaires.php on line 21
et voici la ligne 21
mysql_query "INSERT INTO coms VALUES ('','".$_POST['pseudo']."','".$_POST['message']."')" or die(mysql_error());